【发布时间】:2020-02-13 14:35:29
【问题描述】:
我必须为每个用户编写一个 SQL 查询,该查询将返回该用户最常预订的房间的名称。
我创建了三个表之一:
SELECT User.Name as user_name, Room.Name as room_reser
FROM Reservation
INNER JOIN User ON User.Id = Reservation.UserId
INNER JOIN Room ON Room.Id = Reservation.RoomId
3 人表:
Name room_rese name common_room
Jack room_1
Anna room_2 I need => Jack room_1
Jack room_1
Anna room_1 Anna room_2
Jack room_2
Anna room_2
我尝试过这样的事情,但我不知道在这种情况下如何使用它:
SELECT DISTINCT r.user_name, (
select b.room_reser
from Reservation b
where b.user_name = r.user_name
group by b.user_name, b.roo_reser
order by count(*) desc
limit 1
) as roo_reser from Reservation r)`
【问题讨论】:
-
如果出现平局,预期的结果是什么? (如果用户有两个不同的房间且最大预订数相同。)
-
好问题,在这个任务中什么都没有,我想它应该为一个用户显示'n'答案。