我的记录如下:
column_1 column_2 column_3 column_4
abc xyz sra 123
abc xyz sra 234
def gth har 678
def gts har 965
def gts har 376
xyz wxyz sra 567
xyz wxyz sra 734
abc xyz har 26
abc xyz har 24
我想要一个查询显示如下,使用pl sql分析函数第5列应该产生序列:
column_1 column_2 column_3 column_4 coulmn_5
abc xyz sra 123 1
abc xyz sra 234 1
abc xyz har 26 2
abc xyz har 24 2
def gth har 678 3
def gts har 965 3
def gts har 376 3
xyz wxyz sra 567 4
xyz wxyz sra 734 4
答案 0 :(得分:4)
你没有解释你想要什么,所以我不得不猜。
select column_1,
column_2,
column_3,
column_4,
dense_rank() over (order by column_1, column_3) as column_5
from the_table
order by column_1, column_4
这假设示例数据中的abdc
和abcd
是拼写错误,实际上应该是abcd
的两倍。如果这不是拼写错误,那么窗口函数可能应该更改为使用order by column_3
答案 1 :(得分:0)
尝试此查询:
SELECT column_1,column_2,column_3,column_4,DENSE_RANK() WITHIN GROUP
(PARTITION BY column_1 ORDER BY column_1 ) "column_5"