亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

PostgreSQL rollup與窗口函數結合

小樊
83
2024-09-06 04:10:24
欄目: 云計算

在 PostgreSQL 中,ROLLUP 和窗口函數可以結合使用,以便在一個查詢中執行分組和匯總操作

首先,我們需要創建一個示例表:

CREATE TABLE sales (
    id SERIAL PRIMARY KEY,
    product_id INT,
    store_id INT,
    amount NUMERIC(10, 2),
    sale_date DATE
);

接下來,我們將插入一些示例數據:

INSERT INTO sales (product_id, store_id, amount, sale_date)
VALUES (1, 1, 100.00, '2021-01-01'),
       (1, 1, 200.00, '2021-01-02'),
       (1, 2, 300.00, '2021-01-01'),
       (2, 1, 400.00, '2021-01-01'),
       (2, 2, 500.00, '2021-01-01');

現在,我們將使用 ROLLUP 和窗口函數計算每個商店的銷售總額以及總銷售總額。這是一個示例查詢:

SELECT store_id, SUM(amount) AS total_sales,
       SUM(SUM(amount)) OVER () AS grand_total_sales
FROM sales
GROUP BY ROLLUP (store_id)
ORDER BY store_id;

這個查詢將返回以下結果:

 store_id | total_sales | grand_total_sales
----------+-------------+-------------------
        1 |       700.00|            1900.00
        2 |       800.00|            1900.00
     NULL |      1900.00|            1900.00

在這個查詢中,我們首先使用 GROUP BY ROLLUP (store_id) 對商店進行分組。然后,我們使用 SUM(amount) 計算每個商店的銷售總額。最后,我們使用窗口函數 SUM(SUM(amount)) OVER () 計算所有商店的總銷售總額。注意,當 store_id 為 NULL 時,表示這是一個匯總行,包含所有商店的總銷售總額。

0
阜康市| 普兰县| 加查县| 从江县| 伊通| 大石桥市| 石楼县| 永登县| 九龙县| 琼中| 平乐县| 琼海市| 黄梅县| 抚宁县| 五指山市| 舟曲县| 兴安县| 儋州市| 勃利县| 汨罗市| 剑河县| 茌平县| 洱源县| 依安县| 乳山市| 墨脱县| 绍兴市| 屏边| 毕节市| 定安县| 上高县| 修水县| 青河县| 久治县| 莒南县| 澄江县| 贵溪市| 开江县| 陆河县| 红桥区| 东乌珠穆沁旗|