[oracle]GROUP BY 不正确 (SQL)

标签: sql Oracle
发布时间: 2017/4/15 18:56:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一种 SQL 查询,目前显示表中的所有的人 HOTEL ,订好了酒店 260 美元和 350 美元之间。我使用 ORACLE

SELECT guest.guest_name "GUEST NAME", 
       Count(guest.guest_no), 
       guest.guest_no   "GUEST           NUMBER", 
       room.r_price     "ROOM PRICE" 
FROM   room, 
       guest, 
       booking 
WHERE  r_price >= 260 
       AND r_price <= 350 
       AND guest.guest_no = booking.guest_no 
GROUP  BY guest.guest_no, 
       guest.guest_name, 
       room.room_price 
ORDER  BY guest.guest_name; 

我以为我能group由只是客人。GUEST_NAME (因此它放所有的下一个名称,而不是加倍的客人名单计数)。

编辑︰ 当前查询的结果如下所示︰

    GUEST NAME    COUNT   GUEST_NO R_PRICE
    Jenny Freeman   2   G003    260
    Jenny Freeman   2   G003    295
    Jenny Freeman   2   G003    310
    Martin Ferguson 3   G006    260
    Martin Ferguson 3   G006    295
    Martin Ferguson 3   G006    310
    Paul Happy  3   G002    260
    Paul Happy  3   G002    295
    Paul Happy  3   G002    310
    Steve Kirkwood  3   G005    260
    Steve Kirkwood  3   G005    295
    Steve Kirkwood  3   G005    310
    Tina Duncan 2   G001    260
    Tina Duncan 2   G001    295
    Tina Duncan 2   G001    310
    Vanessa Horton  1   G007    260
    Vanessa Horton  1   G007    295
    Vanessa Horton  1   G007    310

但我期待这样的事情︰

    GUEST NAME    COUNT   GUEST_NO R_PRICE
    Jenny Freeman   6   G003    260
    Martin Ferguson 9   G006    310
    Paul Happy  9   G002    310
    Steve Kirkwood  9   G005    260
    Tina Duncan 6   G001    310
    Vanessa Horton  3   G007    260

解决方法 1:

好你只需要向我声明休息看起来 OK 更改组中。只是不要在 Group By 语句中包括房间价格,我认为这为您创造问题,是否我只拿你的问题正确......

 GROUP BY GUEST.GUEST_NO,
          GUEST.GUEST_NAME

 MAX(R_PRICE) 
赞助商