С таблицей MySQL, например:
id | colA | colB
...| 1 | 13
...| 1 | 13
...| 1 | 12
...| 1 | 12
...| 1 | 11
...| 2 | 78
...| 2 | 78
...| 2 | 78
...| 2 | 13
...| 2 | 13
...| 2 | 9
Для каждого значения в colA
Я хочу найти N наиболее частых значений в colB
.
Пример результата для N =2:
colA | colB
1 | 13
1 | 12
2 | 78
2 | 13
Я могу получить все уникальные комбинации colA
и colB
с их частотами, используя:
SELECT colA, colB, COUNT(*) AS freq FROM t GROUP BY colA, colB ORDER BY freq DESC;
Пример результата:
colA | colB | freq
1 | 13 | 2
1 | 12 | 2
1 | 11 | 1
2 | 78 | 3
2 | 13 | 2
2 | 9 | 1
Но я изо всех сил пытаюсь применить LIMIT
для каждого значения в colA
вместо всей таблицы.
Это в основном похоже на Как выбрать наиболее частое значение в столбце для каждогоid group? , только для MySQL вместо PostgreSQL.
Я сейчас использую MariaDB 10.1.