以下のフィールドと値を持つテーブルTABLE01があります:分割する必要があります。異なる行にデータを分離し、行ごとにカウントします
COL1 COL2 COL3 COL4 COL5 COL6 COL7
01-01-2017 P 123 abc Y T A1_A2
01-21-2017 P 456 rst N P A1_A3;A4
06-10-2017 P 876 hyi N S A2_A8;A5_A6;A9
10-12-2017 P 999 iop Y R A7
今私は列(COL1、COL2、COL3、COL4を持つ新しいテーブルを作成する必要があります、COL7、COUNT_COL3)を使用して、上記の表をすべて ';'私はsplititng部分を行い、カウントに0ないよう必ずカウント部が
INSERT into TABLE02 (COL1, COL2,COL3,COL4,COL7,COUNT_COL3)
SELECT COL1, COL2, COL3,COL4,
trim(COLUMN_VALUE) COL7, 0
FROM TABLE01
xmltable(('"'
|| REPLACE(COL7, ';', '","')
|| '"'))
;
誰かがplsはお勧めできます追加する方法を追加することができ、各COL3
COL1 COL2 COL3 COL4 COL7 COUNT_COL3
01-01-2017 P 123 abc A1_A2 1
01-21-2017 P 456 rst A1_A3 2
01-21-2017 P 456 rst A4 2
06-10-2017 P 876 hyi A2_A8 3
06-10-2017 P 876 hyi A5_A6 3
06-10-2017 P 876 hyi A9 3
10-12-2017 P 999 iop A7 1
の数と下のように別の行に区切らCOL7?
'count(*)over(partition by col1、col2、col3、col4)'を試してください。 – krokodilko
これは機能しました!ありがとうKrokodilko – Mishti