使用sql server计算序列出现在表中的次数

时间:2013-12-27 18:10:02

标签: sql-server-2008

我想得到表格中出现以下序列的ID:

x    r1   
x    r2
x    r1
y    r2
z    r1
z    r2

该表包含以下信息

ID     S1      S2
1      x       r1
1      x       r2
1      x       r1
1      y       r2
1      z       r1
1      z       r2
2      x       r1
2      x       r2
3      x       r1
3      x       r2
3      x       r1
3      y       r2
4      x       r1
4      z       r2
4      x       r1
4      x       r2
4      x       r1
4      y       r2
4      z       r1
4      z       r2

我希望结果返回2,因为上面提到的序列出现在两个不同的ID上。

我尝试了以下代码:

with c as 
(
select id, count (id) as id_cnt
from table1
group by id
)

select t.id, t.s2, t.s1
from table1 t
join c
on t.id = c.id
and c.id_cnt >= 6
where t.s1 in( 'x', 'y', 'z')
group by t.id, t.s2, t.s1
order by t.id

1 个答案:

答案 0 :(得分:0)

您可以使用此查询:

 select ID , COUNT(id) AS idCount ,s1,s2 from table1 
 group by ID,s1,s2