题解 | 查询连续入住多晚的客户信息?
查询连续入住多晚的客户信息?
https://www.nowcoder.com/practice/5b4018c47dfd401d87a5afb5ebf35dfd
select
ct.user_id,
gt.room_id,
gt.room_type,
datediff(ct.checkout_time,ct.checkin_time) as days
from checkin_tb ct
join guestroom_tb gt on ct.room_id = gt.room_id
where ct.checkin_time >= '2022-06-12' and
datediff(ct.checkout_time,ct.checkin_time) >=2
order by days, room_id asc, user_id desc
无需使用group by 进行分类
如果使用room_id 进行分类会将多个住户的同一个信息合并成一条;
如果使用room_id 和 user_id 一起分类的话,这种分组方式会把每个客户在每个房间的所有入住记录合并成一组,然后你必须使用聚合函数(比如 MAX(checkin_time)、MIN(checkout_time))来提取信息。
查看6道真题和解析