Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Максимальное кол-во вопросов...
 
 автор: champion   (19.09.2007 в 20:23)   письмо автору
 
 

Здравствуйте.

Вот часть БД.
Login Action

user1 forum_quest_add
user2 forum_answ_add
user1 forum_quest_add

Как мне узнать кто задавал больше всего вопросов(forum_quest_add). Конечно настоящая БД во много раз больше.

   
 
 автор: oradev   (20.09.2007 в 01:36)   письмо автору
 
   для: champion   (19.09.2007 в 20:23)
 

Поконкретнее: а если два пользователя задавали максимальное количество вопросов. Выводить обоих ?

   
 
 автор: oradev   (20.09.2007 в 13:20)   письмо автору
 
   для: oradev   (20.09.2007 в 01:36)
 

Партизаны молчат, вот никогда не потрудятся условия задачи конкретнее указать, ну да ладно.
1 вариант: если один пользователь имеет максимальное кол-во вопросов, тогда(частный случай):

SELECT   login, COUNT (action)num_action
    FROM my_tbl_action
   WHERE action = 'forum_quest_add'
GROUP BY login
   ORDER BY num_action desc
  LIMIT 1;


2 вариант: если два пользователя задавали максимальное количество вопросов ( общий случай)

SELECT tab1.login, tab2.max_action
  FROM (SELECT   login, COUNT (action) num_action
            FROM my_tbl_action
           WHERE action = 'forum_quest_add'
        GROUP BY login) tab1,
       (SELECT MAX (tmp.max_cn) max_action
          FROM (SELECT   COUNT (action) max_cn
                    FROM my_tbl_action
                   WHERE action = 'forum_quest_add'
                GROUP BY login) tmp) tab2
 WHERE tab1.num_action = tab2.max_action;

   
 
 автор: champion   (20.09.2007 в 14:14)   письмо автору
 
   для: oradev   (20.09.2007 в 13:20)
 

Всё работает большое спасибо!!!

   
 
 автор: oradev   (20.09.2007 в 14:30)   письмо автору
 
   для: champion   (20.09.2007 в 14:14)
 

Обращайтесс!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования