Вот утверждение, которое, я считаю, дает вам то, что вы хотите, и простое и лаконичное:
select distinct on (country) country, food_id
from munch
group by country, food_id
order by country, count(*) desc
Пожалуйста, дайте мне знать, что вы думаете.
Кстати, функция , отличная от , доступна только в Postgres.
Пример, исходные данные:
country | food_id | eaten
US 1 2017-1-1
US 1 2017-1-1
US 2 2017-1-1
US 3 2017-1-1
GB 3 2017-1-1
GB 3 2017-1-1
GB 2 2017-1-1
выход:
country | food_id
US 1
GB 3