从列中计算7和0的出现次数

时间:2019-03-20 13:13:08

标签: sql sql-server database

我有一个类似以下格式的数据,现在我想计算“ 7”和“ 0”的出现次数,就像它在“ vi”列中的表中显示了多少次?

ci vi 
1  7  
2  0  
3  0  
4  7  
5  7
6  10
7  15
8  0
9  16
10 7
11 0
12 35

预先感谢

3 个答案:

答案 0 :(得分:2)

尝试一下

  ;WITH CTE(ci ,vi )
AS
(
SELECT 1  ,7   UNION ALL
SELECT 2  ,0   UNION ALL
SELECT 3  ,0   UNION ALL
SELECT 4  ,7   UNION ALL
SELECT 5  ,7   UNION ALL
SELECT 6  ,10  UNION ALL
SELECT 7  ,15  UNION ALL
SELECT 8  ,0   UNION ALL
SELECT 9  ,16  UNION ALL
SELECT 10 ,7   UNION ALL
SELECT 11 ,0   UNION ALL
SELECT 12 ,35 
)
SELECT vi,COUNT(vi) Occurence
FROM CTE
WHERE vi IN (7,0) -- Specific values count Required use this where condition else remove
GROUP BY vi

结果

vi  Occurence
--------------
0      4
7      4

答案 1 :(得分:2)

MS SQL 可以通过GROUP BY

实现
select vi, count(1) [COUNT] from @table1
group by vi
having vi in (7,0)

DEMO

答案 2 :(得分:1)

我认为您可以像这样使用sumcase-when

select
     sum(case when vi = 7 then 1 else 0 end) as [7Count],
     sum(case when vi = 0 then 1 else 0 end) as [0Count]
from table