|
|
|
| Здравствуйте.
Вот часть БД.
Login Action
user1 forum_quest_add
user2 forum_answ_add
user1 forum_quest_add
Как мне узнать кто задавал больше всего вопросов(forum_quest_add). Конечно настоящая БД во много раз больше. | |
|
|
|
|
|
|
|
для: champion
(19.09.2007 в 20:23)
| | Поконкретнее: а если два пользователя задавали максимальное количество вопросов. Выводить обоих ? | |
|
|
|
|
|
|
|
для: 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;
|
| |
|
|
|
|
|
|
|
для: oradev
(20.09.2007 в 13:20)
| | Всё работает большое спасибо!!! | |
|
|
|
|
|
|
|
для: champion
(20.09.2007 в 14:14)
| | Обращайтесс! | |
|
|
|