sql – 如何使用SUM和CASE计算胜负?
发布时间:2020-12-12 06:29:55 所属栏目:MsSql教程 来源:网络整理
导读:我正在使用SQL Server 2008 我试图计算任何给定自行车的输赢.每次用户投票时,他对一辆自行车投票(1)并对另一辆自行车投票(0). 我的投票表如下所示: VoteID --- BikeID ---- Vote1 100 12 101 03 100 04 101 15 102 16 100 07 102 08 101 1 当我为特定的自行
我正在使用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 问题是你的案例陈述没有涵盖所有条件,因此在他们没有考虑的情况下返回null. 此外,您不需要投票组,因为您实际上并未在聚合之外选择投票. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |