根据SQL Server中的条件计算
问题描述:
有谁知道如何根据条件在SQL Server中进行计数。根据SQL Server中的条件计算
例子:
我怎样才能做到在表名“系统”的记录,总caseid记录的列数?
Customer表
userid caseid name
1 100 alan
1 101 alan
1 102 amy
1 103 system
1 104 ken
1 105 ken
1 106 system
结果会显示如下图所示:
UseeID TotalcaseID TotalRecordsWithSystem
1 7 2
答
使用SUM/CASE ...
SELECT
COUNT(*), --total
SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) --conditional
FROM
myTable
+1
哦,旧的好的SUM CASE ...总是很有帮助,总是很容易忘记。谢谢! – 2016-11-16 10:19:21
答
我觉得他想用户ID的结果
SELECT
userid,
COUNT(*) as TotalcaseID, --total
SUM(CASE WHEN name = 'system' THEN 1 ELSE 0 END) as TotalRecordsWithSystem
FROM
myTable
group by userid
答
select
userid,
count('x') as TotalCaseID,
count(case when name = 'system' then 'x' else null end) as TotalRecordsWithSystem
from CustomerTable
group by userid
为什么你不使用'其中name =“system''? – stomy 2017-11-07 23:50:24