【发布时间】:2015-02-09 12:21:48
【问题描述】:
以下是我的示例表和行
create table com (company text,val int);
insert into com values ('com1',1),('com1',2),('com1',3),('com1',4),('com1',5);
insert into com values ('com2',11),('com2',22),('com2',33),('com2',44),('com2',55);
insert into com values ('com3',111),('com3',222),('com3',333),('com3',444),('com3',555);
我想获得每家公司的前 3 名价值,预期输出是:
company val
---------------
com1 5
com1 4
com1 3
com2 55
com2 44
com2 33
com3 555
com3 444
com3 333
【问题讨论】:
-
这里有一个解决方案:sqlfiddle.com/#!15/5692e/5。但该列是文本类型,因此不建议分区。我在想别的事。
-
同样的问题在这里有答案:stackoverflow.com/questions/1124603/…
标签: postgresql greatest-n-per-group