![](/img/trans.png)
[英]Creating new Column if an other column equal a specific value in SQL Oracle
[英]oracle sql to group specific column based on some other column
SOURCE_TABLE
------------
OID EVENT_ID
1 1111
2 2222
3 1111
4 1111
5 1111
6 2222
7 2222
8 2222
FINAL_TABLE
------------
SNO EVENT_ID OID LINE_NUMBER
1 1111 1 1
2 1111 1 2
3 1111 3 3
4 1111 3 4
5 1111 4 5
6 1111 4 6
7 1111 5 7
8 1111 5 8
9 2222 2 1
10 2222 2 2
11 2222 6 3
12 2222 6 4
13 2222 7 5
14 2222 7 6
15 2222 8 7
16 2222 8 8
我正在使用 Oracle 11g。 我想將數據從 SOURCE 表插入到 FINAL 表中。 在 FINAL 表中,每個 EVENT_ID 的行號必須是唯一的(例如 1111)。
假設SNO 是Final_Table 中的自增PK。 使用ROW_NUMBER() 函數:
insert into FINAL_TABLE (EVENT_ID, OID, LINE_NUMBER)
(
select EVENT_ID,OID,
ROW_NUMBER() OVER(PARTITION BY EVENT_ID ORDER BY OID) as LINE_NUMBER
from source_table
);
如果我理解正確的話,你是在追求這個
SELECT EVENT_ID, OID ROW_NUMBER()
OVER (PARTITION BY EVENT_ID,OID ORDER BY OID) AS LINE_NUMBER
FROM SOURCE_TABLE;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.