gpt4 book ai didi

mysql - 通过计数和分组正确获取此 SQL 查询

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

我在尝试正确获取此查询时遇到问题。

假设我有一个包含以下数据的表:

id    |   xyz     |   code
===========================
1 | 1 | ba
2 | 1 | zz
3 | 1 | ba
1 | 1 | zz
1 | 1 | ba
2 | 1 | zz

我想得到 'xyz' 的总和,按 id 分组,例如

SELECT id, SUM(xyz) as mysum FROM table WHERE xyz=1 GROUP BY id

我最终会得到结果:

id   |  mysum 
================
1 | 3
2 | 2
3 | 1

完美。

问题是,我实际上想做的是按“代码”列进行分组,因此,如果 id: 1 有 2 个带有代码“ba”的条目,那么结果将是更像这样:

id   |  mysum 
================
1 | 2
2 | 1
3 | 1

这是我对 mysql 有限的理解失败的地方。因为我想执行这样的查询:

SELECT id, SUM(xyz) AS mysum FROM table WHERE xyz=1 GROUP BY id, code

但这显然给出了我想要的结果。

如何执行这种对 xyz 列进行求和的查询,同时如果已经添加了具有相同“代码”的列,则忽略它?

最佳答案

SELECT id,
SUM(CASE WHEN code = 'ba' then 1 ELSE 0 END)
FROM table1
GROUP BY id

后续问题:为什么 id=2 的值为 1,不是零吗?

更新1

SELECT id,
count(Distinct code)
FROM table1
GROUP BY id

关于mysql - 通过计数和分组正确获取此 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13418638/

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