У меня есть таблица, в которой хранятся записи журнала, упрощенная версия будет
key value
a 1
a 2
a 3
a 2
b 1
b 2
b 2
и я просто хочу извлечь наиболее появившуюся комбинацию, такую как:
key value
a 2
b 2
, так как комбинации a-1
и a-3
появляются только один раз, а комбинация a-2
- дважды.
приветствуется любое решение SQL, я просто хочу знать суть решения этой проблемы, я найду правильное решение для своей собственной платформы / sql варианта.
основываясь на великолепном ответе Гордона Линоффа и возможностях, которые может предоставить моя платформа, я в итоге использую что-то вроде этого:
select
key,
value
from (
select
key,
value,
rank() over(partition by key order by t1.cnt desc) as rank
from (
select
key,
value,
count(*) as cnt
from
table
group by
key,
value
) t1
group by
key,
value,
t1.cnt
) t2
where t2.rank = 1