#mysql #sql
Найти самое часто встречающееся значение для одного столбца можно при помощи запроса: SELECT foo FROM bar GROUP BY foo ORDER BY count(*) DESC LIMIT 1; Но как составить запрос, если нужно сделать выборку по всем полям таблицы, выбрав самые частотные значения для каждого столбца?
Ответы
Ответ 1
думаю поможет вот это, SELECT ( SELECT foo1 FROM bar GROUP BY foo1 ORDER BY COUNT(*) DESC , foo1 DESC LIMIT 1 ) AS foo1, ( SELECT foo2 FROM bar GROUP BY foo2 ORDER BY COUNT(*) DESC , value2 DESC LIMIT 1 ) AS foo2, ... ( SELECT fooN FROM bar GROUP BY fooN ORDER BY COUNT(*) DESC , fooN DESC LIMIT 1 ) AS fooN; SQL-Fiddle: testОтвет 2
Здравствуйте. Боюсь оказаться не правым, но может быть так: Select foo, Count(foo) as c From bar Group by foo Having c > 5;Ответ 3
если сортировки не взаимосвязаны порядком применения (сначала сортировка по одному столбцу, затем по другому, и т.д.), то для каждого столбца придётся применять отдельный оператор select.
Комментариев нет:
Отправить комментарий