我需要一个查询,将我的曲目分组为创建日期(月),然后限制每组最多10个结果。
我正试着这样做:
SELECT "tracks".*
FROM (SELECT ROW_NUMBER() OVER (order by tracks.votes_count DESC) AS r,
t.*
from tracks t
where 1=1 ) x
where x.r <= 10
但它给了我关于from子句的错误:
错误:缺少表“轨道”
的FROM子句条目
我做错了什么?应该如何正确查询?
答案 0 :(得分:2)
x
别名被曝光。因此,您需要将tracks
别名更改为x
。
SELECT x.*
FROM (SELECT ROW_NUMBER() OVER (order by tracks.votes_count DESC) AS r,
t.*
from tracks t
where 1=1 ) x
where x.r <= 10
答案 1 :(得分:1)
为什么不简单:
SELECT *
FROM tracks
ORDER BY votes_count DESC NULLS LAST
LIMIT 10;