在SQL中通过串联选择2个最大值

时间:2019-03-03 08:05:56

标签: mysql sql greatest-n-per-group

我想回答这个问题:

如果房间不可访问或房间类型为双倍,则编写一条SQL语句以显示酒店名称,房间类型以及与“ NIGHTS”和可访问性关联的夜晚数。仅显示最多两个夜晚。将计算的预订数量的别名更改为“ NUM_OF_NIGHTS”。?

这是我到目前为止编写的代码:

SELECT HOTELNAME, ROOMTYPE, 
       CONCAT(NIGHTS,' NIGHTS ',ACCESSIBILITY) AS NUM_OF_NIGHTS
  FROM HOTEL, 
       ROOM, 
       BOOKING
 WHERE ACCESSIBILITY='N' 
    OR ROOMTYPE='DOUBLE';

我认为我必须在某个地方使用TOP函数来显示最大的2个夜晚,但是我不确定将其整合到代码中的位置。如果有人可以在这里帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试一下,

SELECT
     HOTELNAME
     , ROOMTYPE
     , CONCAT(NIGHTS,' NIGHTS ',ACCESSIBILITY) AS NUM_OF_NIGHTS
FROM HOTEL, 
     ROOM, 
     BOOKING
WHERE ACCESSIBILITY='N' 
     OR ROOMTYPE='DOUBLE'
ORDER BY NIGHTS DESC
LIMIT 2