@delongeroman

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

Доброго времени суток!
Как мне вывести из этой таблице при группировке по возрасту самое повторяющееся хобби для каждой возрастной группы. Тут, например, должно быть 18 - fishing, 20 - football.
60281857dc8c8927536867.png
Заранее спасибо за ответы.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
Немного сложно, но работает:
select *
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
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы