SQL了解两列中的大多数ID

时间:2016-12-08 16:51:22

标签: sql

我想知道每个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 

1 个答案:

答案 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;