首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server计数-分组依据

问SQL Server计数-分组依据
EN

Stack Overflow用户
提问于 2021-04-01 15:38:50
回答 1查看 33关注 0票数 0

我有一个包含记录的表格,如下图所示。我想为每个状态做一个计数,并且能够通过选择每个状态类型来做到这一点。我将需要执行4个查询来获得结果。我想知道如何使用单个查询语句来实现这一点?欢迎任何意见或建议,并高度赞赏。提前谢谢。

​

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-01 15:51:19

代码语言:javascript
复制
WITH CTE(NO,STATUS)AS
(
   SELECT 1,'OPEN' UNION ALL
   SELECT 2,'OPEN'UNION ALL
   SELECT 3,'BILLED'UNION ALL
   SELECT 4,'CANCELLED'UNION ALL
   SELECT 5,'BILLING'UNION ALL
   SELECT 6,'BILLED'UNION ALL
   SELECT 7,'CANCELLED'UNION ALL
   SELECT 8,'BILLING'UNION ALL
   SELECT 9,'CONFIRM'UNION ALL
   SELECT 10,'IN PROGRESS'UNION ALL
   SELECT 11,'OPEN'UNION ALL
   SELECT 12,'CONFIRM' 
)
SELECT 
  SUM(CASE WHEN C.STATUS='BILLED'THEN 1 ELSE 0 END)AS BILLED,
  SUM(CASE WHEN C.STATUS='BILLING'THEN 1 ELSE 0 END)AS BILLING,
  SUM(CASE WHEN C.STATUS='CANCELLED'THEN 1 ELSE 0 END)AS CANCELLED,
  SUM(CASE WHEN C.STATUS NOT IN ('CANCELLED','BILLING','BILLED')THEN 1 ELSE 0 END)AS UNBILL
FROM CTE AS C

CTE是您提供的一个示例。请将对它的引用替换为对您的表的引用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66900283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档