MySQL вывести самое частое значение

Печать RSS
356

В
Автор
Чатланин
0
Есть таблица files, в ней есть поле user INT(11) (т.е. id юзера который выложил файл).
Как вывести идентификатор юзера, который чаще всего выкладывал файлы?
G

Землянин
0
SELECT DISTINCT user, COUNT(*) FROM files GROUP BY user далее в результирующем массиве через max() находишь максимальное число и печатаешь юзера

Господин ПЖ
0
примерно вот так
в моем примере выводит логин и число сообщений самого активного на форуме
SELECT posts_user, COUNT(posts_user) AS cnt  FROM posts GROUP BY posts_user ORDER BY cnt DESC LIMIT 1;
Забыл написать это для SQLite, возможно в mysql есть более эффективный способ
Изменил: Вантуз-мен (04.10.2009 / 01:33)
G

Землянин
0
SELECT user, COUNT(*) AS cnt FROM files GROUP BY user ORDER BY cnt DESC LIMIT 1 вот так правильнее будет

Господин ПЖ
0
Gefest, а зачем считать все поля когда нужен результат из одного, по времени выборки из 50 тыс, разницы конечно никакой
G

Землянин
0
count(*) подсчитывает кол-во записей, а не полей, разницы нет что указывать, просто я где-то читал что так чуть быстрее работает
M

Оранжевые штаны
0
А в чем прикол запроса непойму.
В
Автор
Чатланин
0
3,4 пример работают, тему можно закрывать
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск