我做了几个查询,并得到了相同的"ORA-00933: SQL命令未正确结束“错误。所以他们在这里:
-拥有最多溪流的歌曲的艺术家
SELECT ArtistID, NumberofStreams
FROM Songs
GROUP BY SongID
ORDER BY NumberOfStreams DESC
LIMIT 1;
-返回最古老的专辑及其艺术家
SELECT ArtistName, AlbumName
FROM Album
ORDER BY ReleaseDate ASC
LIMIT 1;
-以最多的歌曲回报艺术家
SELECT ArtistID, COUNT(SongID)
FROM Songs
GROUP BY ArtistID
ORDER By COUNT(SongID) DESC
LIMIT 1;
表的设置如下:
歌曲(SongID,ArtistID,SongName,SongName,SongLength)
专辑(AlbumID,AlbumName,ArtistID,ArtistName,NumberOfTracks,ReleaseDate)
我认为这与我的订单或限制有关,但我就是搞不懂。
发布于 2017-04-30 15:28:08
Oracle不支持LIMIT
。您可以使用子查询重写这些内容:
SELECT x.*
FROM (SELECT ArtistID, NumberofStreams
FROM Songs
GROUP BY SongID
ORDER BY NumberOfStreams DESC
) x
WHERE rownum = 1;
Oracle 12c+支持更为简单和标准的fetch first 1 row only
SELECT ArtistID, NumberofStreams
FROM Songs
GROUP BY SongID
ORDER BY NumberOfStreams DESC
FETCH FIRST 1 ROW ONLY
https://stackoverflow.com/questions/43712400
复制