1

我正在执行以下查询:

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的每个日期。

如果有人可以看到命令有什么问题,将不胜感激,谢谢

4

2 回答 2

4

WHERE子句必须在GROUP BY.

请参阅有关 SELECT 的 oracle 文档

SELECT COUNT(*), action_date
FROM summary 
WHERE num_actions = 500
GROUP BY action_date
于 2015-07-24T14:27:19.810 回答
2

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

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

你在GROUP BY之后有WHERE

将查询更改为:

SELECT COUNT(*), ACTION_DATE 
FROM SUMMARY 
WHERE NUM_ACTIONS = 500 
GROUP BY ACTION_DATE; 
于 2015-07-24T14:30:38.160 回答