-2

当我尝试在 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; 

我究竟做错了什么?这是说这不是按表达式分组。

4

1 回答 1

2

编辑:

编辑后,请从文档中查看:

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

放在Group By前面Having,并且还包括 Group By 子句中的所有字段(不是最大值)

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

您可以查看文档以获取更多信息

于 2013-03-28T23:23:57.347 回答