Как найти наиболее распространенный результат в столбце в моей таблице MySQL - PullRequest
5 голосов
/ 11 апреля 2009

Используя PHP и MySQL, я хочу запросить таблицу сообщений, которые мои пользователи сделали, чтобы найти человека, который разместил больше всего записей.

Какой будет правильный запрос для этого?

Пример структуры таблицы:

[id] [UserID]
1     johnnietheblack
2     johnnietheblack
3     dannyrottenegg
4     marywhite
5     marywhite
6     johnnietheblack

Я хотел бы видеть, что "johnnietheblack" является лучшим постером, "marywhite" является вторым лучшим, а "dannyrottenegg" имеет наименьшее количество

Ответы [ 3 ]

13 голосов
/ 11 апреля 2009

Что-то вроде:

SELECT COUNT(*) AS `Rows`, UserID
FROM `postings`
GROUP BY UserID
ORDER BY `Rows` DESC
LIMIT 1

Получает количество строк, отправленных определенным идентификатором, затем сортирует их по количеству, чтобы найти наибольшее значение, выводит его и идентификатор человека. Вам нужно будет заменить 'UserID' и 'postings' на соответствующие столбец и поле.

1 голос
/ 11 апреля 2009

Я считаю, что это должно работать ...

SELECT user_id, COUNT(*) FROM postings ORDER BY COUNT(*) GROUP BY user_id LIMIT 1
0 голосов
/ 11 апреля 2009

Предполагается, что публикация является кортежем (user_id, receient_user_id), где каждая строка представляет одну публикацию от user_id до receient_user_id:

select user_id, count(*) as posts 
from postings
group by user_id
having count(*) = max(count(*)) ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...