举个例子,我想按类别选择带有最大日期组的id,结果是:7,2,6
id category date
1 a 2013-01-01
2 b 2013-01-03
3 c 2013-01-02
4 a 2013-01-02
5 b 2013-01-02
6 c 2013-01-03
7 a 2013-01-03
8 b 2013-01-01
9 c 2013-01-01
Run Code Online (Sandbox Code Playgroud)
我可以在PostgreSQL中知道如何做到这一点吗?
| uId | title | amount | makers | widgets |
1 richard 998 xcorp sprocket
2 swiss 995 ycorp framitz
3 ricky 90 zcorp flobber
4 ricky2 798 xcorp framitz
1 lilrick 390 xcorp sprocket
1 brie 200 mcorp gullywok
1 richard 190 rcorp flumitz
1 brie 490 bcorp sprocket
Run Code Online (Sandbox Code Playgroud)
等等...
我试图每个只检索3条记录makers,前3条amounts和widgets它们产生
这就是我所拥有的:
SELECT amount, makers FROM (SELECT amount, makers, (SELECT count(*) FROM entry as t2
WHERE t2.amount = t1.amount and t2.makers >= …Run Code Online (Sandbox Code Playgroud) 以下是我的示例表和行
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);
Run Code Online (Sandbox Code Playgroud)
我希望获得每家公司的前三大价值,预计产量为:
company val
---------------
com1 5
com1 4
com1 3
com2 55
com2 44
com2 33
com3 555
com3 444
com3 333
Run Code Online (Sandbox Code Playgroud)