我是甲骨文的新手,我正在编写一些东西,但我需要做一些超出我的事情。
首先,我必须使用Oracle 8i
我们从一个表格开始,其数据类似于:
Column1 Column2
A 7
A 9
A 13
B 5
B 6
C 1
C 4
C 9
C 40
对于每个字母(column1)
,我需要从此表中获取FIRST 2值Value1 = n1 Value2 = n2
例如,A值为7和9,但B为5和6
抱歉,我无法画一张桌子(
而且我不知道有多少字母可以有这个表格,所以我想最好的方式是它可能是所有表格的循环,只取第一排和第二排(表格是排列的,总是需要第一个和第二个值每封信)但我不知道该怎么办......
可能是按column1和rownum< 3进行查询过滤?我不确定此查询是否总是只采用前2个值或采用2个随机值...
答案 0 :(得分:1)
您可以使用窗口功能。
select column_1, column_2
from (
select column_1, column_2,
row_number() over (partition by column_1 order by column_2) as rn
from the_table
) t
where rn <= 2;
您可以在标记greatest-n-per-group