更新时间:2024-11-12 GMT+08:00
分享

窗口函数查询

窗口函数对数据集中的相关行集执行计算,返回一个结果集。与聚集函数所完成的计算相比,窗口函数并不会使多行被聚集成一个单独的输出行。

--建表并插入数据。
gaussdb=# CREATE TABLE fruit_sale (
  "statistical_date" date,
  "product" varchar(255),
  "year" varchar(5),
  "sales_quantity" numeric(8),
  "amount" numeric(8)
);
                  
gaussdb=# INSERT INTO fruit_sale VALUES ('2024-01-01', '西瓜', '2024', 1721, 253541);
gaussdb=# INSERT INTO fruit_sale VALUES ('2024-01-01', '苹果', '2024', 5559, 269419);
gaussdb=# INSERT INTO fruit_sale VALUES ('2024-02-01', '西瓜', '2024', 4711, 129644);

--统计所有水果的销售量。
gaussdb=# SELECT *,SUM(sales_quantity) OVER (PARTITION by null) total_qty FROM fruit_sale;
 statistical_date | product | year | sales_quantity | amount | total_qty 
------------------+---------+------+----------------+--------+-----------
 2024-01-01       | 西瓜    | 2024 |           1721 | 253541 |     11991
 2024-01-01       | 苹果    | 2024 |           5559 | 269419 |     11991
 2024-02-01       | 西瓜    | 2024 |           4711 | 129644 |     11991
(3 rows)

--删除。
gaussdb=# DROP TABLE fruit_sale;

相关文档