如何在查询列中获取序列
how to get sequence in the query for a column
我有几条记录如下:
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
你没有解释你想要什么,所以我不得不猜测。
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
的两倍。如果这不是拼写错误,那么 window 函数可能应该更改为使用 order by column_3
试试这个查询:
SELECT column_1,column_2,column_3,column_4,DENSE_RANK() WITHIN GROUP
(PARTITION BY column_1 ORDER BY column_1 ) "column_5"
我有几条记录如下:
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
你没有解释你想要什么,所以我不得不猜测。
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
的两倍。如果这不是拼写错误,那么 window 函数可能应该更改为使用 order by column_3
试试这个查询:
SELECT column_1,column_2,column_3,column_4,DENSE_RANK() WITHIN GROUP
(PARTITION BY column_1 ORDER BY column_1 ) "column_5"