gpt4 book ai didi

mysql - 连接表值总和的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 02:12:44 25 4
gpt4 key购买 nike

尝试在一个查询和一行中获取不同行的计数

表 1..

ID name 
1 a
2 b
3 c

表2

ID Parent status
1 1 0
2 1 1
3 1 0
4 1 0
5 1 2
6 2 0

期望的结果(不同子元素的数量)

ID   name 0a             1s               2s
1 a 3(count of 0s) 1 (counts of 1s) 2 (count of 2s)

我们可以在一个查询中得到这个吗..

我尝试的结果是 3 行中的值

Select t1.id, t1.name, count(status) from TABLE_1 t1 Left JOIN TABLE_2 t2
ON t1.id = t2.parent
group by status



ID name status
1 a 3
1 a 1
1 a 1
2 b 1

最佳答案

您可以将 left join 和 Count 与 Case 语句一起使用。例如:

SELECT T1.ID
,T1.name
,COUNT(CASE WHEN T2.status = 0 THEN T2.ID END) [0a]
,COUNT(CASE WHEN T2.status = 1 THEN T2.ID END) [1s]
,COUNT(CASE WHEN T2.status = 2 THEN T2.ID END) [2s]
FROM TABLE_1 T1 LEFT JOIN TABLE_2 T2 ON T1.ID = T2.Parent
GROUP BY T1.ID, T1.name

将产生输出:

ID  name    0s  1s  2s
1 a 3 1 1
2 b 1 0 0
3 c 0 0 0

这是 sqlfiddle 中的完整代码:http://sqlfiddle.com/#!6/ab92d/10/0

关于mysql - 连接表值总和的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47489397/

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