我有一个包含多个列的表格,我希望将其分组到该组中的一列我想要按其他列应用组,并且每个组需要前3个结果 例子
col1 col2 col3
1 1.9 2.6
1 1.2 3.5
1 2.1 4.1
2 3.2 3.3
2 2.5 3.5
3 1.1 1.8
3 2.1 1.9
结果:
col1 col2 col3
1 1.2 2.6
1 1.9 3.5
1 2.1 4.1
2 2.5 3.3
2 3.2 3.5
3 1.1 1.8
3 2.1 1.9
我希望这个表的结果将在col1和每个组中进行摸索,并根据col2从每个组的col2和top3进行排序
答案 0 :(得分:0)
这是典型的"每组最大的N"通常使用窗口函数解决的问题:
select col1, col2, col3
from (
select col1, col2, col3,
row_number() over (partition by col1 order by col2) as rn
from the_table
) t
where rn <= 3
order by col1, col2;