以下的前三名是我的示例表和行PostgreSQL的:選擇各組
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
一個解決方案是在這裏:http://sqlfiddle.com/#!15/5692e/5。但該列是文本類型,因此不建議使用分區。我在想別的東西。 – 2014-12-11 05:18:15
同樣的問題與答案在這裏:http://stackoverflow.com/questions/1124603/grouped-limit-in-postgresql-show-the-first-n-rows-for-each-group – 2014-12-11 11:37:55