SQL 中的条件总和
Conditional Sum in SQL
我正在寻找一种方法来在以另一个字段为条件的 select 语句中添加创建求和。最好用一个例子来解释。
假设我们在 table
中有以下值
EmployeeID SalesQty Verified
0025 34 Y
0040 56 Y
0040 17 N
0040 44 Y
然后我想return以下,其中总销售额是EmployeeId分组的所有salesqty值的总和,只有那些记录被验证的验证销售额是Y。
EmployeeID TotalSales VerfifiedSales
0025 34 34
0040 117 100
试试这个:
SELECT
EmployeeID,
SUM(SalesQty) AS TotalSales,
SUM(CASE WHEN Verified = 'Y' THEN SalesQty ELSE 0 END) AS VerfifiedSales
FROM
Tbl
GROUP BY
EmployeeID
使用另一个总和,条件已验证 = Y:
select EmployeeID,
sum(SalesQty) as TotalSales,
sum(case when verified = 'Y' then SalesQty else 0 end) as VerfifiedSales
from table
group by EmployeeID
我正在寻找一种方法来在以另一个字段为条件的 select 语句中添加创建求和。最好用一个例子来解释。
假设我们在 table
中有以下值EmployeeID SalesQty Verified
0025 34 Y
0040 56 Y
0040 17 N
0040 44 Y
然后我想return以下,其中总销售额是EmployeeId分组的所有salesqty值的总和,只有那些记录被验证的验证销售额是Y。
EmployeeID TotalSales VerfifiedSales
0025 34 34
0040 117 100
试试这个:
SELECT
EmployeeID,
SUM(SalesQty) AS TotalSales,
SUM(CASE WHEN Verified = 'Y' THEN SalesQty ELSE 0 END) AS VerfifiedSales
FROM
Tbl
GROUP BY
EmployeeID
使用另一个总和,条件已验证 = Y:
select EmployeeID,
sum(SalesQty) as TotalSales,
sum(case when verified = 'Y' then SalesQty else 0 end) as VerfifiedSales
from table
group by EmployeeID