gpt4 book ai didi

sql - 从与其他 2 列之和的最大值关联的 A 列中获取值

转载 作者:行者123 更新时间:2023-12-04 08:25:28 28 4
gpt4 key购买 nike

这是一个 SQL 问题。
对不起标题,但我不知道如何写得更好。
我有3张 table :房间,入住和结账。
表房间作为一列room_id。
表签到列:日期,reservation_id,room_id。
表结帐有列:日期,reservation_id,room_id。
我只想得到最多睡了几天的房间(它的 id)(如 SUM(checkout.date - checkin.date))。
我只知道如何与天数相处。
我怎样才能只得到一列(room_id)?
我的 2 列脚本是这样的:

SELECT r.room_id, SUM(c2.data - c1.data) FROM checkin c1
INNER JOIN checkout c2 ON c1.reservation_id = c2.reservation_id
INNER JOIN room r on r.room_id = c1.room_id
GROUP BY r.room_id
ORDER BY 2 DESC
FETCH FIRST ROW ONLY;
我想我需要一个子查询(至少),但是我在创建一个新列时遇到了麻烦。

最佳答案

只是不要在 SELECT 中包含您不想要的信息:

SELECT ci.room_id
FROM checkin ci INNER JOIN
checkout co
ON ci.reservation_id = co.reservation_id
GROUP BY r.room_id
ORDER BY SUM(co.data - ci.data) DESC
FETCH FIRST ROW ONLY;
请注意 room_idcheckin ,所以 room不需要表。
我不知道 JOIN应包括两列:
     ON ci.reservation_id = co.reservation_id AND
ci.room_id = co.room_id
如果同一预订的不同房间有不同的退房日期,则可能需要这样做——即使没有,出于性能原因也可能有帮助。

关于sql - 从与其他 2 列之和的最大值关联的 A 列中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65282090/

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