我正在尝试计算表中一系列idsofInterest的模式,每个模式都有一个伴随的valueOfInterest:
idsOfInterest | valueOfInterest 2 | 1A 2 | 1A 2 | 3B 1 | 2A 1 | 2C 1 | 2A 4 | 3B 4 | 3B 4 | 4C
但有数百万行。 每个idOfInterest列表都足够长,以至于多模式都不是问题。理想情况下,我想要类似
idsOfInterest | modeValueOfInterest 1 | 2A 2 | 1A 3 | 3C 4 | 3B
任何帮助表示赞赏。(使用MS SQL Server 2008)
模式是最常见的值。您可以通过聚合和获得此信息row_number():
row_number()
select idsOfInterest, valueOfInterest from (select idsOfInterest, valueOfInterest, count(*) as cnt, row_number() over (partition by idsOfInterest order by count(*) desc) as seqnum from table t group by idsOfInterest, valueOfInterest ) t where seqnum = 1;