选择大于ORACLE

选择大于ORACLE,oracle,Oracle,我尝试了以下语句的不同变体,结果是它必须做的事情的一半,我不知道缺少了什么 SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C ON HG.CUS_ID = C.CUS_ID) ON HR.BOO

我尝试了以下语句的不同变体,结果是它必须做的事情的一半,我不知道缺少了什么

SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C
ON HG.CUS_ID = C.CUS_ID)
ON HR.BOOKING_CUS_ID = HG.CUS_ID
WHERE HR.RESV_ID >= 2
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME;
收益率

NO_RESERVATIONS    RESV_ID  BOOKED_BY CUS_NAME
--------------- ---------- ---------- --------------------
              1          3          5 Beatrice P. Rosa
              1          8         15 Phillip B. Fleming
              1          7         13 Debra V. Key
              1          4          7 Magee A. Pace
              2         11          3 Hadassah T. Hebert
              1          5          9 Portia D. Melton
              2          2          3 Hadassah T. Hebert
              1          6         11 Larissa X. Boyer
              1          9         17 Wayne F. Burnett
              1         10         19 Eleanor J. Padilla

10 rows selected.
它应该只显示做出两次或两次以上保留的人,在本例中是Hadassah T.Hebert

回答谢谢布莱恩的帮助

屈服


要筛选出分组结果,需要使用HAVING语句。因此,对于您的示例,您的查询如下所示:

SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C
ON HG.CUS_ID = C.CUS_ID)
ON HR.BOOKING_CUS_ID = HG.CUS_ID
WHERE HR.RESV_ID >= 2
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME
HAVING count(*) > 1;

要筛选出分组结果,需要使用HAVING语句。因此,对于您的示例,您的查询如下所示:

SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C
ON HG.CUS_ID = C.CUS_ID)
ON HR.BOOKING_CUS_ID = HG.CUS_ID
WHERE HR.RESV_ID >= 2
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME
HAVING count(*) > 1;

非常感谢,我永远不会忘记这个:)非常感谢,我永远不会忘记这个:)
SELECT DISTINCT COUNT(*) AS NO_RESERVATIONS, HG.RESV_ID, HR.BOOKING_CUS_ID AS BOOKED_BY, C.CUS_NAME
FROM HOLIDAY_RESERVATION HR INNER JOIN(HOLIDAY_GROUP HG INNER JOIN CUSTOMER C
ON HG.CUS_ID = C.CUS_ID)
ON HR.BOOKING_CUS_ID = HG.CUS_ID
WHERE HR.RESV_ID >= 2
GROUP BY HG.RESV_ID, HR.BOOKING_CUS_ID, C.CUS_NAME
HAVING count(*) > 1;