gpt4 book ai didi

mysql - SQL:如何从一列/类型中获取不同的值?

转载 作者:行者123 更新时间:2023-11-29 05:50:10 24 4
gpt4 key购买 nike

我正在尝试从下面的name 表中求和总数:

id  type  num
2 0 90
24 1 38
2 1 878
9 0 8763
9 2 76
9 1 374

type 列中有三种类型,我想找到所有type = 01 的id。例如,在表中,id = 2id = 9 具有 type = 0type = 1。所以将选择这些数据并将它们加在一起,如下所示:

       type: num
id 2 - 0:90
1:878

id 9 - 0:8763
1: 374

sum = 90 + 878 + 8764 + 374 = 10,106

我是这样查询的:

SELECT SUM(num) FROM  table WHERE type = 0 AND type = 1;

但没有什么可显示的。如果我将查询更改为 type = 0 OR type = 1,它会起作用,但我认为它不正确。如何对 num 求和,其中 type = 0type = 1

我很困惑,我不确定我是否解释清楚,如果您能提供一些帮助,我们将不胜感激。

最佳答案

使用此查询:

  select id from tablename
where type in (0, 1)
group by id
having min(type) = 0 and max(type) = 1

你得到所有类型为 0 和 1 的 ID。
所以你把它加入表格以获得你想要的总数:

select sum(t.num) total 
from tablename t inner join (
select id from tablename
where type in (0, 1)
group by id
having min(type) = 0 and max(type) = 1
) g on g.id = t.id
where t.type in (0, 1)

参见 demo
或者不加入:

select sum(t.num) total from (
select id, sum(num) num from tablename
where type in (0, 1)
group by id
having min(type) = 0 and max(type) = 1
) t

参见 demo

关于mysql - SQL:如何从一列/类型中获取不同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55191026/

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