gpt4 book ai didi

mysql - 在MySQL中,如何返回相关表中两列的总和等于特定值的记录计数?

转载 作者:行者123 更新时间:2023-11-29 20:53:50 25 4
gpt4 key购买 nike

假设我有以下 3 个表:表1( session )

SessionID SessionName
1 Running
2 Jumping
3 Skipping
4 Running
5 Running

表 2(预订)

ID SessionID UserID Attended
1 1 1 1
2 4 2 1
3 4 3 0
4 2 1 1
5 5 4 1

表 3(其他预订)

ID SessionID GroupID NumberAttended
1 1 1 1
2 1 2 32
3 2 1 4
4 4 3 3
5 4 4 1

我想找到 session 名称为“正在运行”的 session 计数以及与会者总数(来自其他两个表的 session 大于给定值,例如 5)。所以类似:

选择 COUNT(*) 作为 SessionTotal...HAVING SUM(Bookings.Attished + OtherBookings.NumberAttished) > 5

最佳答案

这行得通吗?

SELECT count(*) 
FROM sessions s
WHERE IFNULL((SELECT sum(b.attended) FROM bookings b WHERE b.sessionid =
s.sessionid AND s.sessionname = 'Running'), 0)
+
IFNULL((SELECT sum(o.numberattended) FROM otherbookings o WHERE
o.sessionid = s.sessionid AND s.sessionname = 'Running'), 0)
> 5;

这里是sqlfiddle .

此查询在子查询中分别计算两个表的总和,然后将结果相加。 IFNULL 用于处理其中一个子查询返回 null 的情况。

关于mysql - 在MySQL中,如何返回相关表中两列的总和等于特定值的记录计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37796164/

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