亚洲乱色熟女一区二区三区丝袜,天堂√中文最新版在线,亚洲精品乱码久久久久久蜜桃图片,香蕉久久久久久av成人,欧美丰满熟妇bbb久久久

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

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

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

在數(shù)據(jù)分析中,常常需要進行數(shù)據(jù)的匯總和聚合分析。

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

示例數(shù)據(jù):

首先,我們創(chuàng)建一個簡單的sales表,并插入一些數(shù)據(jù)。

-- 建表

CREATE TABLE sales (

year INT,

quarter INT,

amount DECIMAL(10, 2)

);

 

-- 插入數(shù)據(jù)

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);

 

-- 數(shù)據(jù)表如下:

SELECT

  *

FROM

  Sales

;

數(shù)據(jù)表如下:

01 MySQL中的ROLL UP  

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

SELECT

  year,

  quarter,

  SUM(amount) as total_amount

FROM

  Sales

GROUP BY

  year,

  quarter WITH ROLLUP

;

結(jié)果如下:

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

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

SELECT

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

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

  SUM(amount) as total_amount

FROM

  sales

GROUP BY

  year,

  quarter WITH ROLLUP

;

結(jié)果如下:

02 PostgreSQL中的ROLL UP  

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

SELECT

  year,

  quarter,

  SUM(amount) as total_amount

FROM

  Sales

GROUP BY

  ROLLUP(year, quarter)

ORDER BY  year,quarter

;

結(jié)果如下,和MySQL的結(jié)果一致

若要將NULL換成小計或者總計,可以結(jié)合COALESCE函數(shù)。這里要注意的是需要將year和quarter字段轉(zhuǎn)換為字符串類型,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

;

若不轉(zhuǎn)換為字符串類型,會報如下錯誤:

查詢結(jié)果如下:

在實踐中,根據(jù)實際需求和數(shù)據(jù)庫類型,可以使用相應(yīng)的語法來實現(xiàn) ROLL UP 功能,并根據(jù)結(jié)果進行進一步的數(shù)據(jù)分析和報表制作。


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