【发布时间】:2012-03-20 20:08:28
【问题描述】:
我想知道是否有一种简单的方法可以将查询限制在前 n 个窗口中。
即说我有类似的东西
SELECT field1
,field2
,field3
,sum(field2) over (partition by field1) sum2
,sum(field3) over (partition by field1) sum3
FROM table1
GROUP BY field1, field2, field3
ORDER BY sum2 DESC LIMIT 100
上面的查询返回前 100 个记录,而不是前 100 个窗口(这是有道理的)
我想要的是前 100 个 sum2 窗口,即使该窗口内可能有多行。所以我可能会得到 400 条记录,但只有前 100 个窗口。
希望这是有道理的。
【问题讨论】:
-
为什么不按列分组?
-
我需要保留每条记录中的详细信息。我正在尝试在同一结果集中获取详细信息和聚合。实际查询要大得多。这只是问题的一个示例。
-
仍然没有得到..但是您必须先按列分组...
标签: postgresql limit result-partitioning