计数集的出现次数

时间:2013-07-08 16:32:33

标签: sql sql-server-2008

我想计算b列中值的出现次数和列a:

IE如果我有以下数据:

A     B
1     2
1     3
1     2
1     4
2     2
2     3
2     2
2     4

我想返回以下内容:

A     B     C
1     2     2
1     3     1
1     2     2
1     4     1
2     2     2
2     3     1
2     2     2
2     4     1

确定。对不起,我没有添加我尝试过的内容。这是星期一,这是7月份的第4周。当我和她在医院病房时,我的阿姨从癌症中过去了。

选择一个,        b,        C =计数(*)              超过(                分区BY b) 来自你的;

我不知道为什么我没有尝试

选择一个,        b,        C =计数(*)              超过(                分区BY a,b) 来自你的;

建议或只是加入子查询。我猜这只是其中一天。这个问题可以删除。

2 个答案:

答案 0 :(得分:3)

您应该使用:

SELECT a, 
       b, 
       C = Count(*) 
             OVER ( 
               partition BY a, b) 
FROM   yourtable; 

请参阅SQL Fiddle with Demo

答案 1 :(得分:3)

您可以使用相关子查询来获得结果:

SELECT a, b,
  (select count(*)
   from yourtable t1
   where t.a = t1.a
     and t.b = t1.b) c
FROM yourtable t

请参阅SQL Fiddle with Demo