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

溫馨提示×

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
中宁县| 裕民县| 江安县| 固安县| 伊宁市| 肃宁县| 石泉县| 铜川市| 通江县| 榕江县| 徐汇区| 科技| 边坝县| 海南省| 丰镇市| 准格尔旗| 泾阳县| 广饶县| 临澧县| 麻栗坡县| 平度市| 东乌珠穆沁旗| 天柱县| 九龙坡区| 棋牌| 洪湖市| 海南省| 巴马| 富锦市| 申扎县| 名山县| 美姑县| 城口县| 安仁县| 永吉县| 西乌珠穆沁旗| 平湖市| 界首市| 博客| 南部县| 上虞市|