欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL中with?rollup的用法及說明

 更新時間:2022年10月11日 16:09:31   作者:wh柒八九  
這篇文章主要介紹了MySQL中with?rollup的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

MySQL with rollup的用法

當需要對數(shù)據(jù)庫數(shù)據(jù)進行分類統(tǒng)計的時候,往往會用上groupby進行分組。

而在groupby后面還可以加入withcube和withrollup等關(guān)鍵字對數(shù)據(jù)進行匯總。

mysql文檔

with rollup概述

with在sql語句中定義在group by之后。當需要對數(shù)據(jù)庫數(shù)據(jù)進行分類統(tǒng)計的時候,往往會用上groupby進行分組。

而在groupby后面還可以加入withcube和withrollup等關(guān)鍵字對數(shù)據(jù)進行匯總。

不過這個cube在mysql中并不適用。

應(yīng)用實例

現(xiàn)在有這樣一張學(xué)生表,里面的數(shù)據(jù)如下所示。

如果想對根據(jù)學(xué)生,對科目,分數(shù)求和,可以這樣寫。

如果想在這個的基礎(chǔ)上,求出學(xué)生的總分數(shù),應(yīng)該怎么做。

使用 WITH ROLLUP,此函數(shù)是對聚合函數(shù)進行求和,注意 with rollup是對 group by 后的第一個字段,進行分組求和。

ORDER BY不能在rollup中使用,兩者為互斥關(guān)鍵字,如果使用,會拋出以下錯誤:Error Code:1221. Incorrect usage of CUBE/ROLLUP and ORDER BY。mysql5.7中是不支持的,在8.0以后支持。

相信大家已經(jīng)知道如何使用with rollup了,這個就是在group by分組之后,再次對聚合函數(shù)進行求和。

MySQL with rollup 聚合函數(shù)類似oracle cube操作

作用

在分組統(tǒng)計數(shù)據(jù)的基礎(chǔ)上再進行統(tǒng)計匯總 

題目示例

根據(jù)題目意思需要 求每個價格區(qū)間,時間的mark=0的和/mark=1的和

最后還有求個所有價格區(qū)間 按月份的mark=0的和/mark=1的和

SELECT
	PriceBand,
	YearMonth,
	sum( CASE Mark WHEN 0 THEN VALUE END ) / sum( CASE Mark WHEN 1 THEN VALUE END ) 
FROM
	test 
GROUP BY
	YearMonth,
	PriceBand UNION ALL
SELECT
	'Alll priceBand',
	YearMonth,
	sum( CASE Mark WHEN 0 THEN VALUE END ) / sum( CASE Mark WHEN 1 THEN VALUE END ) 
FROM
	test 
GROUP BY
	YearMonth

在不知道m(xù)ysql有 這種聚合函數(shù)的情況 我所想到的只能靠這樣拼接來實現(xiàn)

使用rollup后

SELECT
	ifnull( PriceBand, 'All priceBand' ),
	YearMonth,
	sum( CASE Mark WHEN 0 THEN VALUE END ) / sum( CASE Mark WHEN 1 THEN VALUE END ) 
FROM
	test 
GROUP BY
	YearMonth,
	PriceBand WITH ROLLUP 
HAVING
	YearMonth IS NOT NULL

注意

在mysql5.6.17版本中,只定義了cube,但是不支持cube操作。

cube也是一種對數(shù)據(jù)的聚合操作。但是rollup只在層次上對數(shù)據(jù)進行聚合,而cube對所有的維度進行聚合。具有N個維度的列,cube需要2的N次方次分組操作,而rollup只需要N次分組操作。

rollup和cube的區(qū)別:

1)假設(shè)有n個維度,rollup會有n個聚合:

  • rollup(a,b) 統(tǒng)計列包含:(a,b)、(a)、()
  • rollup(a,b,c)統(tǒng)計列包含:(a,b,c)、(a,b)、(a)、()

2)假設(shè)有n個緯度,cube會有2的n次方個聚合

  • cube(a,b) 統(tǒng)計列包含:(a,b)、(a)、(b)、()
  • cube(a,b,c) 統(tǒng)計列包含:(a,b,c)、(a,b)、(a,c)、(b,c)、(a)、(b)、©、()

在mysql中 with rollup放的位置是有要求的

之前的group by 正常使用分組 加了 with rollup 在那個字段后就對所有價格區(qū)間進行統(tǒng)計 同時 with rollup 并不能放在 (group by a with rollup,b )中間

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • sql與mysql有哪些區(qū)別

    sql與mysql有哪些區(qū)別

    在本篇文章里小編給大家分享了關(guān)于sql與mysql的區(qū)別的內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • 深入mysql慢查詢設(shè)置的詳解

    深入mysql慢查詢設(shè)置的詳解

    本篇文章是對mysql慢查詢設(shè)置進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • windows下mysql數(shù)據(jù)庫主從配置教程

    windows下mysql數(shù)據(jù)庫主從配置教程

    這篇文章主要為大家詳細介紹了windows下mysql數(shù)據(jù)庫主從配置教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 為何不要在MySQL中使用UTF-8編碼方式詳解

    為何不要在MySQL中使用UTF-8編碼方式詳解

    這篇文章主要給大家介紹了關(guān)于為何不要在MySQL中使用UTF-8編碼方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • MySQL中存儲時間的最佳實踐指南

    MySQL中存儲時間的最佳實踐指南

    這篇文章主要給大家介紹了關(guān)于MySQL中存儲時間的最佳實踐,文中詳細介紹了哪種存儲時間的方式更好,對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-07-07
  • Windows下mysql community server 8.0.16安裝配置方法圖文教程

    Windows下mysql community server 8.0.16安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了Windows下mysql community server 8.0.16安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • MySQL中事務(wù)概念的簡潔學(xué)習(xí)教程

    MySQL中事務(wù)概念的簡潔學(xué)習(xí)教程

    這篇文章主要介紹了MySQL中的事務(wù)概念,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • 對MySQL幾種聯(lián)合查詢的通俗解釋

    對MySQL幾種聯(lián)合查詢的通俗解釋

    這篇文章主要介紹了LEFT JOIN 關(guān)鍵字會從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。下面給個通俗的解釋吧
    2015-01-01
  • MySQL?UPDATE更新數(shù)據(jù)方式

    MySQL?UPDATE更新數(shù)據(jù)方式

    這篇文章主要介紹了MySQL?UPDATE更新數(shù)據(jù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • VS2019連接mysql8.0數(shù)據(jù)庫的教程圖文詳解

    VS2019連接mysql8.0數(shù)據(jù)庫的教程圖文詳解

    這篇文章主要介紹了VS2019連接mysql8.0數(shù)據(jù)庫的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05

最新評論