Задать вопрос
@delongeroman

Как вывести наиболее повторяющееся значение в таблице при группировке?

Доброго времени суток!
Как мне вывести из этой таблице при группировке по возрасту самое повторяющееся хобби для каждой возрастной группы. Тут, например, должно быть 18 - fishing, 20 - football. Вывести нужно только 2 колонки(возраст и хобби), без подсчета количества.
60281857dc8c8927536867.png
  • Вопрос задан
  • 80 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя Slava Rozhnev К ответам на вопрос (2)
rozhnev
@rozhnev Куратор тега SQL
Fullstack programmer, DBA, медленно, дорого
select 
	age_hobbies.age, 
	age_hobbies.hobbies
from (
  select age, hobbies, count(*) cnt
  from user_hobbies
  group by age, hobbies
) age_hobbies
join (
select age, max(cnt) maxcnt
from (
  select age, hobbies, count(*) cnt
  from user_hobbies
  group by age, hobbies
) h group by age
) max_age_hobbies on 
	age_hobbies.age = max_age_hobbies.age and 
	age_hobbies.cnt = max_age_hobbies.maxcnt;


Mariadb fiddle
Ответ написан