gpt4 book ai didi

sql - 如何使用 SUM 和 CASE 计算输赢?

转载 作者:行者123 更新时间:2023-12-04 03:26:46 24 4
gpt4 key购买 nike

我正在使用 SQL Server 2008

我正在尝试计算任何给定自行车的得失。每次用户投票时,他都会对一辆自行车投一票 (1),对另一辆自行车投反对票 (0)。

我的投票表如下所示:

VoteID --- BikeID ---- Vote
1 100 1
2 101 0
3 100 0
4 101 1
5 102 1
6 100 0
7 102 0
8 101 1

当我对特定自行车运行查询时,我希望我的结果看起来像这样
Wins -- Losses
5 6

现在,我的结果是这样的:
Wins --- Losses
5 NULL
NULL 6

我的查询如下所示:
SELECT  SUM(CASE WHEN Vote = 1 THEN 1 END) AS Wins,
SUM(CASE WHEN Vote = 0 THEN 1 END) AS Losses
FROM Votes
WHERE BikeID = 101
GROUP BY Vote

我需要做什么才能在一行上获得结果?

最佳答案

SELECT  SUM(CASE WHEN Vote = 1 THEN 1 ELSE 0 END) AS Wins,
SUM(CASE WHEN Vote = 0 THEN 1 ELSE 0 END) AS Losses
FROM Votes
WHERE BikeID = 101

问题是您的 case 语句没有涵盖所有条件,因此对于它们没有考虑的情况返回 null。

此外,您不需要投票分组,因为您实际上并没有选择聚合之外的投票。

关于sql - 如何使用 SUM 和 CASE 计算输赢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8771980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com