欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

如何用SQL進行數據庫表的小計與總計計算?ROLLUP功能詳解

admin
2024年3月13日 12:10 本文熱度 654

在數據分析中,常常需要進行數據的匯總和聚合分析

之前的文章中已經介紹了聚合函數、開窗函數、group by語句等方法來實現數據表的聚合分析。接下來,我們將使用MySQL和PostgreSQL這兩個常見的關系型數據庫,來演示如何在SQL中使用ROLLUP實現數據庫表的小計和總計計算。

示例數據:

首先,我們創建一個簡單的sales表,并插入一些數據。

-- 建表

CREATE TABLE sales (

year INT,

quarter INT,

amount DECIMAL(10, 2)

);

 

-- 插入數據

INSERT INTO sales VALUES

(2021, 1, 100),

(2021, 2, 150),

(2021, 3, 200),

(2021, 4, 250),

(2022, 1, 120),

(2022, 2, 180),

(2022, 3, 220),

(2022, 4, 270);

 

-- 數據表如下:

SELECT

  *

FROM

  Sales

;

數據表如下:

01 MySQL中的ROLL UP  

以下查詢按年份和季度對銷售額進行匯總,并使用ROLLUP生成各級別的匯總。

SELECT

  year,

  quarter,

  SUM(amount) as total_amount

FROM

  Sales

GROUP BY

  year,

  quarter WITH ROLLUP

;

結果如下:

當使用ROLLUP時,任何被GROUP BY的列都可能在結果集中出現NULL值,這表示該列的匯總值。上面的示例中,2021年所有季度的匯總值為700,2022年所有季度的匯總值為790,所有年份的匯總值為1490。

若要將NULL換成小計或者總計,可以結合COALESCE函數,見如下SQL示例:

SELECT

  COALESCE( year,'總計') as year,

  COALESCE( quarter,'小計') as quarter,

  SUM(amount) as total_amount

FROM

  sales

GROUP BY

  year,

  quarter WITH ROLLUP

;

結果如下:

02 PostgreSQL中的ROLL UP  

PostgreSQL也支持ROLLUP,但其語法略有不同。在PostgreSQL中,你需要在GROUP BY子句后使用ROLLUP()函數。

SELECT

  year,

  quarter,

  SUM(amount) as total_amount

FROM

  Sales

GROUP BY

  ROLLUP(year, quarter)

ORDER BY  year,quarter

;

結果如下,和MySQL的結果一致

若要將NULL換成小計或者總計,可以結合COALESCE函數。這里要注意的是需要將year和quarter字段轉換為字符串類型,SQL如下:

SELECT

  COALESCE(year::text,'總計') AS year,

  COALESCE(quarter::text,'小計') AS quarter,

  SUM(amount) as total_amount

FROM

  sales

GROUP BY

  ROLLUP(year, quarter)

ORDER BY

  year,quarter

;

若不轉換為字符串類型,會報如下錯誤:

查詢結果如下:

在實踐中,根據實際需求和數據庫類型,可以使用相應的語法來實現 ROLL UP 功能,并根據結果進行進一步的數據分析和報表制作。


該文章在 2024/3/14 9:12:37 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved