【问题标题】:FROM keyword not found where expected - ORA-00923在预期的地方找不到 FROM 关键字 - ORA-00923
【发布时间】:2012-12-11 00:31:33
【问题描述】:

我有一个简单的 SQL 查询,我正在尝试为一个 uni 项目运行它。我在标题中遇到错误,但是我运行了一个非常相似的查询,没有问题。

select booking.customer_id, booking_start_date
   SUM(total_cost) sales
from booking
order by 2 desc 

提前致谢。

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您在booking_start_date 之后错过了,

    试试 -

    select booking.customer_id, 
           booking_start_date,
           SUM(total_cost) sales
    from booking
    GROUP BY booking.customer_id, booking_start_date
    order by 2 desc 
    

    【讨论】:

    • 我之前确实尝试过。它返回 ORA-00937: not a single-group group function。
    • 是的,没错。您需要添加一个 GROUP BY。尝试 GROUP BY booking.customer_id, booking_start_date
    【解决方案2】:

    尝试以下..

    select 
        booking.customer_id
        , booking.start_date
        , SUM(booking.total_cost) sales
    from
        booking
    group by
        booking.customer_id
        , booking.start_date
    order by 
        2 desc 
    

    【讨论】:

    • 我认为booking_start_date 列的本意是booking.start_date
    【解决方案3】:

    这是您更新后的查询。当您使用 COUNT、SUM、MIN、MAX 等聚合函数时,您还应该使用 GROUP BY。

    select booking.customer_id, booking_start_date
       SUM(total_cost) sales
    from booking group by booking.customer_id, booking_start_date
    order by 2 desc 
    

    【讨论】:

    • 发布代码时请将其突出显示并单击{} 按钮或按 ctrl+k。这将其缩进 4 个空格。您的查询仍然不正确。 booking_start_date 后面少了一个逗号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多