在Oracle中,中實(shí)轉換可以使用PIVOT關(guān)鍵字將行數據轉換成列數據,現行以下是數據數據一個(gè)簡(jiǎn)單的示例:
假設我們有一個(gè)名為sales_data的成列表,其中包含以下字段:product_id(產(chǎn)品ID)、中實(shí)轉換year(年份)和sales(銷(xiāo)售額)?,F行
我們希望將這個(gè)表轉換為一(′_`)個(gè)以產(chǎn)品ID為行,數據數據年份為列,成列銷(xiāo)售額為值的中實(shí)轉換表格。
我們需要創(chuàng )建一??個(gè)臨時(shí)表,現行用于存儲轉換后的數據數據數據:
CREATE TABLE sales_data_pivot ( product_id NUMBER, 2018 NUMBER, 2019 NUMBER, 2020 NUMBER);接下來(lái),我們可以使用PIVOT關(guān)鍵字將行數據轉換成列數據:
INSERT INTO salesヽ(′?`)ノ_data_pivot (product_id)SELECT product_idFROM sales_dataGROUP BY product_id;UPDATE sales_data_pivot pSET p.2018 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2018),成列 p.20??19 = (SELEヽ(′▽?zhuān)?ノCT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2019), p.2020 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2020);現在,sales_data_pivot表已經(jīng)包含了轉換后(hou)的中實(shí)轉換列數據,你可以使用以下查詢(xún)查看結果:
SELECT * FROM sales_data_pivot;
輸出結果如下:
| PRODUCT_ID | 2018 | 2019 | 2020 |
| 1 | 1000 | 1500 | 2000 |
| 2 | 1200 | 1800 | 2400 |
| 3 | 800 | 1200 | 16??00 |