-- Hint: use Ctrl+Enter for SQL autocomplete
create table user_hobbies(
id int,
age int,
hobbies varchar(32)
);
insert into user_hobbies values
(1, 18, 'fishing'),
(2, 20, 'football'),
(3, 18, 'basketball'),
(4, 18, 'fishing');
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;