如何显示具有不同参数的相同价格的两个不同总和?

How do I display two different sums of the same price with different parameters?

我需要计算 2 个不同总计的总和。一个只是总计,第二个是仅包含售价低于 25 美元的产品的总计。

SELECT SUM(Price) AS Total
FROM Sales (NOLOCK)

SELECT SUM(Price) AS TotalUnder
FROM Sales (NOLOCK)
WHERE Price < 25

预期结果应如下所示

|总计 | TotalUnder |

| 20000 | 1500 |

使用条件聚合:

SELECT SUM(Price) AS Total,
       SUM(CASE WHEN Price < 25 THEN Price ELSE 0 END) as TotalUnder
FROM Sales ;

请注意,我删除了 NOLOCK 提示。这往往是 over-used,通常没有必要。仅当您真正了解 SQL 服务器如何实现锁定并且您知道 NOLOCK 在做什么时才使用它。