postgres窗口函数 - ()

问题描述:

我的选择查询应返回总计数和其他字段的限制和偏移量。我的总数将是1000,但我会限制结果5。我的期望是SQL将返回总数作为1000和其他5个不同的ID。postgres窗口函数 - ()

它可能over()或任何其他方式。数量限制不适用!

SELECT DISTINCT id, total OVER (
    count(DISTINCT las.id) 
    FROM asset 
    WHERE TRUE AND model = 12 AND l status = 'Done' 
    ) 
WHERE TRUE AND model = 12 AND l status = 'Done' 
FROM asset limit 0,10 ; 

sql无法正常工作!根据病情

预期的结果

id count 
1  1000 
2  1000 
3  1000 
4  1000 
5  1000 

根据病情和IDS总数和限制

+2

您的查询是错误的方式,是不可能知道什么是你的目的。只需发布您的数据样本和期望的结果。 – 2013-04-11 18:31:31

+0

请发布一些示例数据,它很难清楚地理解您的要求 – Akash 2013-04-11 18:54:19

+0

您需要先**指定窗口函数(例如'count()')*然后*使用'over()'子句定义窗口。这本手册有一个相当不错的教程。 – 2013-04-11 19:25:48

select id, count(*) total 
from asset 
where model = 12 and status = 'Done' 
group by id 
order by id 
limit 5 
+0

我没有得到实际的总数,它的返回1。有没有什么特定于postgres – zod 2013-04-11 19:18:34

+0

,因为有分组,它只给每个分组ID 1的数量! – zod 2013-04-11 19:28:29

+0

@zod你没有说你想要什么。 – 2013-04-11 19:30:27