我想知道每个id_A中id_b存在的次数最多。我有这张桌子
id_A id_B
1 1
2 1
2 1
3 1
3 3
3 3
我需要一个sql命令来放置这样的表:
id_A id_B
1 1
2 1
3 3
答案 0 :(得分:2)
从技术上讲,这被称为(分配)值的“模式”。
如果您只想要一个,那么使用可以使用带有条件聚合的ANSI标准函数row_number()
:
select id_A, id_B as mode_id_B
from (select id_A, id_B, count(*) as cnt,
row_number() over (partition by id_A order by count(*) desc) as seqnum
from t
group by id_A, id_B
) ab
where seqnum = 1;