【问题标题】:Count the number of occurrence of 7 and 0 from the column从列中统计 7 和 0 出现的次数
【发布时间】:2019-08-11 04:40:56
【问题描述】:

我有一个类似下面格式的数据,现在我想计算'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

提前致谢

【问题讨论】:

  • 似乎是直截了当的WHERE ... GROUP BY 查询。你有没有尝试过?
  • 提示:COUNT()WHERE
  • vi列的数据类型是什么?

标签: sql sql-server database


【解决方案1】:

试试这个

  ;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

【讨论】:

  • 很高兴帮助兄弟:)
【解决方案2】:

MS SQL 可以通过 GROUP BY 实现

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

DEMO

【讨论】:

    【解决方案3】:

    我认为你可以使用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
    

    【讨论】:

      猜你喜欢
      • 2020-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      相关资源
      最近更新 更多