Наиболее распространенное значение для нескольких полей - PullRequest
1 голос
/ 17 января 2010

У меня есть таблица, которая содержит рейтинги. В рейтинг включены данные, предоставленные пользователем, например язык, к которому относится связанная серия.

id  series_id  language  quality  type  rating
1   18         1         2        1     20
2   18         2         3        2     13
3   18         1         1        2     25
4   18         1         3        5     8
5   18         3         1        1     17
6   18         3         3        2     9

Как лучше всего найти наиболее распространенное значение для языка, качества и типа для определенного series_id?

Другими словами, если бы я смотрел серию 18, она вернула бы следующее, поскольку эти числа встречаются чаще всего.

language: 1
quality:  3
type:     2

1 Ответ

3 голосов
/ 17 января 2010

Вероятно, проще всего сделать это тремя отдельными инструкциями SELECT:

SELECT language
FROM MyTable
WHERE series_id = 18
GROUP BY language
ORDER BY COUNT(*) DESC LIMIT 1

SELECT quality
FROM MyTable
WHERE series_id = 18
GROUP BY quality
ORDER BY COUNT(*) DESC LIMIT 1

SELECT type
FROM MyTable
WHERE series_id = 18
GROUP BY type
ORDER BY COUNT(*) DESC LIMIT 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...