我想找到有两个以上房间预订的模块(即表中有两个实例)并显示预订数量。
在我的房间里有桌子
bookingID | roomCode | moduleCode | dayReq | timeReq | semester | classSize
1 | AM200 | CT230 | Tues | 14:00 | 1 | 130
10 | AM200 | ST237 | Tues
11 | SC005 | EC273 | Mon
12 | AM150 | EC273 | Tues
2 | AM200 | CT230 | Wed
3 | IT250 | CT229 | Fri
4 | SC005 | CT2103 | Mon
5 | AM200 | ST237 | Mon
6 | IT125G | CT2101 | Mon
7 | IT204 | CT2101 | Tues
8 | AC216 | CT2103 | Fri
9 | UC102 | CT229 | Fri
13 | IT204 | CT335 | Mon
14 | SC002 | CT335 | Wed
等。
我不确定如何创建一个询问表中实例的查询,例如,moduleCode CT230可能与bookingID 4 7和13相关联,但是如何显示实例并将其应用于SQL查询?
答案 0 :(得分:1)
根据您问题中的详细信息,我认为这是您正在寻找的内容:
SELECT
COUNT(BookingID) AS 'Number of bookings'
, ModuleCode
FROM roomBooking
GROUP BY ModuleCode
HAVING COUNT(BookingID) > 2
<强>更新强>
您可能实际上正在寻找至少两个房间预订的模块,而不是&#34;超过两个房间预订&#34; (引自你的问题)。
使用您提供的示例数据,上述查询确实不会返回任何结果(但根据您的问题请求,它可以正常工作)。
如果您正在寻找至少有两个房间预订的模块,那么下面的查询将返回数据。
SELECT
COUNT(BookingID) AS 'Number of bookings'
, ModuleCode
FROM roomBooking
GROUP BY ModuleCode
HAVING COUNT(BookingID) >= 2
SQLFiddle也支持此查询,具体取决于您提供的示例数据。