【问题标题】:SQL/ORA-00933 SQL Command Not Properly EndedSQL/ORA-00933 SQL 命令未正确结束
【发布时间】:2015-10-15 06:40:28
【问题描述】:

我正在执行以下查询:

select count(*),ACTION_DATE from SUMMARY group by ACTION_DATE where NUM_ACTIONS=500;

这给了我 ORA-00933 SQL 命令没有正确结束,我不知道为什么。

SUMMARY 是表,ACTION_DATE 和 NUM_ACTIONS 是列。所以我期待的是每个日期 num_actions=500。

如果有人能看出该命令有什么问题,将不胜感激,谢谢

【问题讨论】:

标签: sql oracle ora-00933


【解决方案1】:

WHERE 子句必须在GROUP BY 之前。

See oracle documentation about SELECT

SELECT COUNT(*), action_date
FROM summary 
WHERE num_actions = 500
GROUP BY action_date

【讨论】:

  • @teoreda 不,它不是复制/粘贴的。我首先回答了 OP 的语法。然后我编辑了我的答案以修改我每天使用的格式并添加链接和解释。然后我看到了你的答案……
【解决方案2】:

此错误是由以下原因引起的:

原因:SQL 语句以不适当的子句结尾。为了 例如,ORDER BY 子句可能已包含在 CREATE VIEW 或 插入语句。 ORDER BY 不能用于创建有序视图或 按一定顺序插入。

GROUP BY

之后有 WHERE

将查询更改为:

SELECT COUNT(*), ACTION_DATE 
FROM SUMMARY 
WHERE NUM_ACTIONS = 500 
GROUP BY ACTION_DATE; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多