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