Вывод строк с учетом количества повторений
Как вывести сначала те строки, которые чаще всего повторяются? Строка должна быть одна на id_product (DISTINCT)
id|id_product|
1 | 1 |
2 | 2 |
3 | 3 |
4 | 3 |
5 | 4 |
6 | 4 |
7 | 4 |
8 | 4 |
9 | 5 |
Должно получиться так:
id|id_product|
5 | 4 |
4 | 3 |
9 | 5 |
2 | 2 |
1 | 1 |
Ответы (1 шт):
Автор решения: Regent
→ Ссылка
Если предположить, что в результате должно быть 3 | 3, а не 4 | 3 (то есть минимальный id для данного id_product), то тогда можно сгруппировать строки по id_product и отсортировать по их количеству (и дополнительно по id при равном количестве):
SELECT MIN(id) AS 'id', id_product FROM Test
GROUP BY id_product
ORDER BY COUNT(*) DESC, id DESC