【发布时间】:2015-03-23 09:35:00
【问题描述】:
这里很难显示我的实际表和数据,所以我将用一个示例表和数据来描述我的问题:
create table foo(id int,x_part int,y_part int,out_id int,out_idx text);
insert into foo values (1,2,3,55,'BAK'),(2,3,4,77,'ZAK'),(3,4,8,55,'RGT'),(9,10,15,77,'UIT'),
(3,4,8,11,'UTL'),(3,4,8,65,'MAQ'),(3,4,8,77,'YTU');
以下是表格foo:
id x_part y_part out_id out_idx
-- ------ ------ ------ -------
3 4 8 11 UTL
3 4 8 55 RGT
1 2 3 55 BAK
3 4 8 65 MAQ
9 10 15 77 UIT
2 3 4 77 ZAK
3 4 8 77 YTU
我需要通过对每个out_id 的最高 id 进行排序来选择所有字段。
预期输出:
id x_part y_part out_id out_idx
-- ------ ------ ------ -------
3 4 8 11 UTL
3 4 8 55 RGT
3 4 8 65 MAQ
9 10 15 77 UIT
使用 PostgreSQL。
【问题讨论】:
-
最快的解决方案取决于基数、数据分布以及您是否拥有一个包含所有不同
out_id的表。详情:stackoverflow.com/questions/3800551/…
标签: sql postgresql greatest-n-per-group