获取ORA-00979:不是GROUP BY表达式错误

时间:2013-03-28 23:20:35

标签: oracle ora-00979

当我尝试在Oracle上执行此代码时,我一直收到错误

SELECT id,
       Max(id),
       artist AS"Artist"
FROM   d_songs
WHERE  duration IN( '3 min', '6 min', '10 min' )
HAVING id < 50
GROUP  BY id; 

我做错了什么?这是说这不是一个表达的群体。

1 个答案:

答案 0 :(得分:2)

修改

编辑后,请参阅文档:

  

您试图执行包含GROUP BY函数的SELECT语句,例如MIN,MAX,SUM或COUNT。   您试图在SELECT列表中执行一个不在GROUP BY子句中的表达式。

Group By之前加Having,并在Group By Clause中包含所有字段(不是最大值)

SELECT id, max(id), artist as "Artist"
From d_songs
Where duration in('3 min', '6 min', '10 min')
where id < 50
Group by id, artist

您可以查看the docs了解更多信息