gpt4 book ai didi

mysql - sql 查询显示零 - 简单、优雅的方法

转载 作者:行者123 更新时间:2023-11-29 07:22:42 26 4
gpt4 key购买 nike

我阅读了类似问题的答案,并根据这些答案解决了我的问题。然而(我的)解决方案相当复杂,它包括两步 View ,一个带有左连接的附加表。我想知道是否有一个更简单、更优雅的解决方案来解决下面的问题。表 Test 具有列 B,需要根据列 Marker 的值为 4 或以上的标准进行汇总。表 TestResult 是查询所需的输出。正如我所说,我确实有一个尴尬、复杂的解决方案,但我很好奇是否有一个简单、优雅的方法?

mysql> select * FROM Test;
+----+------+------+--------+
| ID | A | B | Marker |
+----+------+------+--------+
| 1 | 11 | 2 | 4 |
| 2 | 11 | 1 | 5 |
| 3 | 14 | 4 | 4 |
| 4 | 11 | 2 | 1 |
| 5 | 12 | 2 | 2 |
| 6 | 13 | 2 | 3 |
| 7 | 14 | 2 | 2 |
+----+------+------+--------+
7 rows in set (0.00 sec)

mysql> select * FROM TestResult;
+----+------+
| A | SumB |
+----+------+
| 11 | 3 |
| 12 | 0 |
| 13 | 0 |
| 14 | 4 |
+----+------+
4 rows in set (0.00 sec)

最佳答案

可以通过使用group bycase来实现:

select A, sum(case when marker >= 4 then B else 0 end)
from Test
group by A;

看看这个 SQL Fiddle

关于mysql - sql 查询显示零 - 简单、优雅的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563955/

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