当我尝试在 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;
我究竟做错了什么?这是说这不是按表达式分组。
编辑:
编辑后,请从文档中查看:
您试图执行包含 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
您可以查看文档以获取更多信息