Sql 使用特定条件对列进行计数
如何计算包含特定值的列,但将其作为总计 表数据:Sql 使用特定条件对列进行计数,sql,sql-server,count,Sql,Sql Server,Count,如何计算包含特定值的列,但将其作为总计 表数据: Code No 1 * 2 - 3 4 4 例如,如果我想计算有多少行有*和-和空间 我可以 Case when No = '*' Then COUNT(No) when No = '-' then count(No) when No = '' then count(No) else 0 end as 'Count' 但是这个返回4 我想把这个还给
Code No
1 *
2 -
3 4
4
例如,如果我想计算有多少行有*和-和空间
我可以
Case when No = '*'
Then COUNT(No)
when No = '-' then count(No)
when No = '' then count(No)
else 0 end as 'Count'
但是这个返回4
我想把这个还给你
任何帮助都将不胜感激请在中使用:
select Sum(Case when No IN ('*', '-', '') then 1 else 0 end) as Count
from Table1
请参阅中的使用:
select Sum(Case when No IN ('*', '-', '') then 1 else 0 end) as Count
from Table1
请参阅。标准SQL有一个特殊的特性:聚合后面的过滤器
子句
不幸的是,它没有得到广泛的支持(主要是PostgreSQL)
使用案例
有一个简单的解决方法,但是:
COUNT(CASE WHEN <condition> THEN 1 END)
计数(1结束时的情况)
这是因为case
的隐含else null
子句起作用,并且count
不计算null
关于filter
子句和模拟它的方法的更多信息:标准SQL有一个特殊的特性:聚合后面的filter
子句
不幸的是,它没有得到广泛的支持(主要是PostgreSQL)
使用案例
有一个简单的解决方法,但是:
COUNT(CASE WHEN <condition> THEN 1 END)
计数(1结束时的情况)
这是因为case
的隐含else null
子句起作用,并且count
不计算null
有关filter
子句及其模拟方法的更多信息: