新聞中心
在Oracle中,可以使用PIVOT關鍵字將行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù),以下是一個簡單的示例:

成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元阜康做網(wǎng)站,已為上家服務,為阜康各地企業(yè)和個人服務,聯(lián)系電話:18982081108
假設我們有一個名為sales_data的表,其中包含以下字段:product_id(產(chǎn)品ID)、year(年份)和sales(銷售額)。
我們希望將這個表轉(zhuǎn)換為一個以產(chǎn)品ID為行,年份為列,銷售額為值的表格。
我們需要創(chuàng)建一個臨時表,用于存儲轉(zhuǎn)換后的數(shù)據(jù):
CREATE TABLE sales_data_pivot (
product_id NUMBER,
2018 NUMBER,
2019 NUMBER,
2020 NUMBER
);
接下來,我們可以使用PIVOT關鍵字將行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù):
INSERT INTO sales_data_pivot (product_id)
SELECT product_id
FROM sales_data
GROUP BY product_id;
UPDATE sales_data_pivot p
SET p.2018 = (SELECT SUM(sales) FROM sales_data WHERE product_id = p.product_id AND year = 2018),
p.2019 = (SELECT 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);
現(xiàn)在,sales_data_pivot表已經(jīng)包含了轉(zhuǎn)換后的列數(shù)據(jù),你可以使用以下查詢查看結(jié)果:
SELECT * FROM sales_data_pivot;
輸出結(jié)果如下:
| PRODUCT_ID | 2018 | 2019 | 2020 |
| 1 | 1000 | 1500 | 2000 |
| 2 | 1200 | 1800 | 2400 |
| 3 | 800 | 1200 | 1600 |
這樣,我們就成功地將行數(shù)據(jù)轉(zhuǎn)換成了列數(shù)據(jù)。
標題名稱:Oracle中實現(xiàn)行數(shù)據(jù)轉(zhuǎn)換成列數(shù)據(jù)
當前地址:http://fisionsoft.com.cn/article/coeccci.html


咨詢
建站咨詢
