sql - 在 case 语句中使用 sql 计数

标签 sql

我有一个表格,我需要以以下方式呈现输出。

tb_a:

col1  |  reg_id | rsp_ind 

rsp_ind = 0 为"new"且 1 为“已接受”的行数

输出应该是

NEW | Accepted
9   | 10

我尝试使用以下查询。

select 
  case when rsp_ind = 0 then count(reg_id)end as 'New',
  case when rsp_ind = 1 then count(reg_id)end as 'Accepted'
from tb_a

我得到的输出为

NEW | Accepted
NULL| 10
9   | NULL

有人可以帮我调整查询以实现输出吗? 注意:我无法添加围绕此的总和。它是一个更大程序的一部分,因此我无法为此添加 super 查询。

最佳答案

SELECT 
    COUNT(CASE WHEN rsp_ind = 0 then 1 ELSE NULL END) as "New",
    COUNT(CASE WHEN rsp_ind = 1 then 1 ELSE NULL END) as "Accepted"
from tb_a

您可以看到此请求的输出 HERE

关于sql - 在 case 语句中使用 sql 计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17975229/

相关文章:

sql - 一对多关系不存在的地方

sql - Oracle 显示购买最多汽车的客户

mysql开关大小写

php - 查询只显示一个结果

mysql - mysql在g​​roup by子句之后还是之前选择用户定义的变量?

mysql - 查找 2 个给定日期之间的结果

sql - Entity Framework 5中有 "READPAST"吗?

php时间偏移mysql实时时间

MySQL - 连接所有子记录都有值的记录

python - 如何在 Sqlalchemy 中正确使用 SQL 连接/子查询