91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

oracle縱向數據怎么變橫向

小億
416
2024-01-13 17:25:59
欄目: 云計算

要將Oracle數據庫中的縱向數據轉換為橫向數據,可以使用Oracle的PIVOT操作符。

下面是一個示例,說明如何使用PIVOT操作符將縱向數據轉換為橫向數據。

假設有以下的表結構:

CREATE TABLE sales (
    product_id INT,
    category VARCHAR2(50),
    sales_date DATE,
    sales_amount NUMBER
);

表中的數據如下:

INSERT INTO sales VALUES (1, 'Category A', '2021-01-01', 100);
INSERT INTO sales VALUES (2, 'Category B', '2021-01-01', 200);
INSERT INTO sales VALUES (1, 'Category A', '2021-02-01', 150);
INSERT INTO sales VALUES (2, 'Category B', '2021-02-01', 250);
INSERT INTO sales VALUES (1, 'Category A', '2021-03-01', 120);
INSERT INTO sales VALUES (2, 'Category B', '2021-03-01', 180);

要將上述數據轉換為橫向數據,可以使用以下查詢語句:

SELECT *
FROM (
    SELECT product_id, sales_date, sales_amount
    FROM sales
)
PIVOT (
    SUM(sales_amount)
    FOR sales_date IN (
        TO_DATE('2021-01-01', 'YYYY-MM-DD') AS "2021-01-01",
        TO_DATE('2021-02-01', 'YYYY-MM-DD') AS "2021-02-01",
        TO_DATE('2021-03-01', 'YYYY-MM-DD') AS "2021-03-01"
    )
)
ORDER BY product_id;

結果將如下所示:

PRODUCT_ID  2021-01-01  2021-02-01  2021-03-01
-----------------------------------------------
1           100         150         120
2           200         250         180

以上查詢使用了PIVOT操作符將sales_date列的值轉換為列名,同時計算了每個product_id和sales_date組合的銷售金額的總和。

請注意,PIVOT操作符在Oracle 11g及以上版本中可用。如果使用較舊的版本,可能需要進行其他的處理方法。

0
二手房| 类乌齐县| 宜兰县| 陇南市| 天津市| 仙游县| 安乡县| 射阳县| 锡林郭勒盟| 盐城市| 涞源县| 长武县| 临沂市| 凤阳县| 吉木乃县| 新乡县| 望都县| 湖北省| 麻阳| 海伦市| 揭东县| 电白县| 临西县| 宜春市| 岑溪市| 桑植县| 大厂| 成安县| 虞城县| 晋宁县| 浦县| 水城县| 泸西县| 涪陵区| 东明县| 周宁县| 绍兴市| 榆社县| 抚松县| 卓尼县| 绥化市|