gpt4 book ai didi

mysql - 在mysql查询中执行复杂的计算

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:36 25 4
gpt4 key购买 nike

我无法尝试在 sql 查询中进行计算。我的餐 table 出勤情况如下所示:

roll   |  sub_id  | status 
abc | 1 | 1
abc | 1 | 0
abc | 2 | 1
xcv | 1 | 1
abc | 2 | 1
abc | 1 | 1
lkj | 2 | 0

这是我的表格主题的示例:

id  |  name 
1 | Data Structure
2 | Cloud Computing

我想为特定的 roll 选择不同的 sub_id,然后计算状态为 0 和状态为 1 的数量,并链接到主题表并显示他们的名字。我想要这样的东西:

roll  | sub_id |      name       | status with 0 | status with 1
abc | 1 |Data Structure | 1 | 2
abc | 2 |Cloud Computing | 0 | 2

有人可以解释一下吗?我该如何处理查询?

最佳答案

您可以在数据透视查询中使用条件聚合来获得您想要的输出。当值同时为 01 时,下面的子查询计算 status 的计数,对于每个 roll/sub_id 组。

SELECT t1.roll,
t1.sub_id,
COALESCE(t2.name, 'name is NA'),
t1.`status with 0`,
t1.`status with 1`
FROM
(
SELECT roll,
sub_id,
SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS `status with 0`,
SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) AS `status with 1`
FROM attendance
GROUP BY roll,
sub_id
) t1
LEFT JOIN
subject t2
ON t1.sub_id = t2.id

点击下面的链接获取正在运行的演示:

SQLFiddle

关于mysql - 在mysql查询中执行复杂的计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39059554/

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