题解 | 查询连续入住多晚的客户信息?

select
    ct.user_id,
    ct.room_id,
    gt.room_type,
    sum(DATEDIFF (ct.checkout_time, ct.checkin_time)) as days
from
    guestroom_tb gt
    inner join checkin_tb ct on gt.room_id = ct.room_id
where
    ct.checkout_time >= '2022-06-12 00:00:00'
group by
    ct.user_id,
    ct.room_id,
    gt.room_type
having
    days > 1
order by
    days asc,
    ct.room_id asc,
    ct.user_id desc

执行逻辑

  1. FROM 和 JOIN:从 guestroom_tb 和 checkin_tb 表中通过 room_id 进行连接。
  2. WHERE:筛选出 checkout_time 大于或等于 2022-06-12 15:00:00 的记录。
  3. GROUP BY:按 ct.user_id、ct.room_id 和 gt.room_type 进行分组。每个分组包含具有相同 user_id、room_id 和 room_type 的记录。
  4. SUM(DATEDIFF(ct.checkout_time, ct.checkin_time)):对每个分组内的记录,计算 checkout_time 和 checkin_time 之间的天数差(DATEDIFF)。将每个分组内的天数差进行累加(SUM),得到该分组的总天数。
  5. SELECT:选择每个分组的 user_id、room_id、room_type 和总天数(days)。
  6. ORDER BY:按 days,user_id 和 room_id 对最终结果进行排序。
全部评论

相关推荐

本人情况:双非本科班转专业,转专业到的科班目前大三,Java后端,Java学习也有10个月有余,投过几百份简历,得到过中小厂的offer,面过大厂面试,但是由于文理科类专业转到科班的要补课基本全补修科班大一大二的课程,所以导致我得到了offer也不能去,目前才补完全部课程,由于起初学习Java之后只想就业不想理会太多学分绩,现在学分绩才83出头,保研无望,在求职我几个月中,本来可以去实习的却因为转专业补课太多无法去,导致进退两难,在求职的时间里,意识到就业形势越来越严峻,感觉到学历的重要性,虽然有大佬双非也能进大厂,但是却是少之又少,所以如果进入到的是一个中厂或者小厂自己的高度基本也就定在那里了吧?(个人想法)我在想如果就业成功,后面想要提升的限度基本就很小了,资源就在那,除了打工还是打工,很难在其他方面有提升了,除非进击公司管理层,所以我在想我如果是这样子情况,那是不是应该考研呢,考研考上好一点的学校资源就更多,所获得的交际和人缘也更多一点,视野也就更宽一点,而不是只局限于就业,求各位大佬指导该寒假准备考研还是实习呢?寒假准备实习基本入职中小厂是没问题的,大厂还得闯一闯,但是现在对于考研的情况是一点不了解,属于从0开始,目前还在刷算法,学Java技术,不知道开始考研还是就业😫。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务