Sql server 如何在sql中使用条件group by?
我有一个包含以下列的表:Sql server 如何在sql中使用条件group by?,sql-server,Sql Server,我有一个包含以下列的表: tblTransaction ( Transaction_ID, Transaction_RequestTransactionCode, Transaction_MobileErrorCode ) 我想得到每个交易的计数,它的MobileErrorCode是0 所以我的问题是这样的: SELECT Transaction_RequestTransactionCode, COUNT(Transaction_ID) AS _Cou
tblTransaction
(
Transaction_ID,
Transaction_RequestTransactionCode,
Transaction_MobileErrorCode
)
我想得到每个交易的计数,它的MobileErrorCode是0
所以我的问题是这样的:
SELECT Transaction_RequestTransactionCode, COUNT(Transaction_ID) AS _Count
FROM tblTransaction
WHERE (Transaction_MobileErrorCode = '0')
GROUP BY Transaction_RequestTransactionCode
结果是:
它没有任何错误,但不是我的结果。当一个事务代码具有该条件(事务\u MobileErrorCode='0')时,它将以\u Count=0的形式出现在结果中
我指的是这个结果,最后一个原始:
要执行条件聚合,请使用
case
语句聚合将条件从where
子句移动到Count
SELECT Transaction_RequestTransactionCode,
Count(CASE
WHEN Transaction_MobileErrorCode = '0' THEN Transaction_ID
END) AS _Count
FROM tblTransaction
GROUP BY Transaction_RequestTransactionCode
要执行条件聚合,请使用
case
语句聚合将条件从where
子句移动到Count
SELECT Transaction_RequestTransactionCode,
Count(CASE
WHEN Transaction_MobileErrorCode = '0' THEN Transaction_ID
END) AS _Count
FROM tblTransaction
GROUP BY Transaction_RequestTransactionCode
使用
sum
对要计数的条件求和
SELECT Transaction_RequestTransactionCode,
SUM(case when Transaction_MobileErrorCode = '0' then 1 else 0 end) AS _Count
FROM tblTransaction
GROUP BY Transaction_RequestTransactionCode
使用
sum
对要计数的条件求和
SELECT Transaction_RequestTransactionCode,
SUM(case when Transaction_MobileErrorCode = '0' then 1 else 0 end) AS _Count
FROM tblTransaction
GROUP BY Transaction_RequestTransactionCode
伯爵不能使用条件。无论是
0
还是1
@juergend-真的!!那不是真的,我只是检查了一下。你说得对。我也是:)你可以使用一个条件,但你必须确保false
部分是null
@juergend,因为我们没有使用否则部分是case
语句,所有其他值都将是null
并且那些不会被计数Count不能使用条件。无论是0
还是1
@juergend-真的!!那不是真的,我只是检查了一下。你说得对。我也是:)你可以使用一个条件,但你必须确保false
部分是null
@juergend,因为我们没有使用,否则部分是case
语句所有其他值都将是null
并且这些值不会被计算如果这是SQLServer问题,请在你的问题中添加“SQLServer”标记,谢谢。如果是SQLServer问题,请在问题中添加“SQLServer”标记,谢谢。