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

1. Валерий (03.10.2009 / 23:45)
Есть таблица files, в ней есть поле user INT(11) (т.е. id юзера который выложил файл).
Как вывести идентификатор юзера, который чаще всего выкладывал файлы?

2. Gefest (04.10.2009 / 01:24)
SELECT DISTINCT user, COUNT(*) FROM files GROUP BY user далее в результирующем массиве через max() находишь максимальное число и печатаешь юзера

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

4. Gefest (04.10.2009 / 01:41)
SELECT user, COUNT(*) AS cnt FROM files GROUP BY user ORDER BY cnt DESC LIMIT 1 вот так правильнее будет

5. Вантуз-мен (04.10.2009 / 01:57)
Gefest, а зачем считать все поля когда нужен результат из одного, по времени выборки из 50 тыс, разницы конечно никакой

6. Gefest (04.10.2009 / 02:38)
count(*) подсчитывает кол-во записей, а не полей, разницы нет что указывать, просто я где-то читал что так чуть быстрее работает

7. Max (04.10.2009 / 07:04)
А в чем прикол запроса непойму.

8. Валерий (04.10.2009 / 11:17)
3,4 пример работают, тему можно закрывать

URL: https://visavi.net/topics/1327