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

Mysql8.0使用窗口函數(shù)解決排序問題

 更新時間:2020年01月07日 14:04:03   作者:追夢人++  
窗口的概念非常重要,它可以理解為記錄集合,窗口函數(shù)也就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù)。這篇文章主要介紹了Mysql8.0使用窗口函數(shù)解決排序問題,需要的朋友可以參考下

MySQL窗口函數(shù)簡介

MySQL從8.0開始支持窗口函數(shù),這個功能在大多商業(yè)數(shù)據(jù)庫和部分開源數(shù)據(jù)庫中早已支持,有的也叫分析函數(shù)。

什么叫窗口?

窗口的概念非常重要,它可以理解為記錄集合,窗口函數(shù)也就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數(shù)。對于每條記錄都要在此窗口內(nèi)執(zhí)行函數(shù),有的函數(shù)隨著記錄不同,窗口大小都是固定的,這種屬于靜態(tài)窗口;有的函數(shù)則相反,不同的記錄對應(yīng)著不同的窗口,這種動態(tài)變化的窗口叫滑動窗口。

窗口函數(shù)和普通聚合函數(shù)也很容易混淆,二者區(qū)別如下:

聚合函數(shù)是將多條記錄聚合為一條;而窗口函數(shù)是每條記錄都會執(zhí)行,有幾條記錄執(zhí)行完還是幾條。

聚合函數(shù)也可以用于窗口函數(shù)中,這個后面會舉例說明。

一、mysql5.0

例如:我們要計算銷售人員的銷售額,結(jié)果按從高到低排序,查詢結(jié)果中要包含銷售的排名。


這是截取某商品訂單表的一部分數(shù)據(jù)

1、計算銷售人員的銷售額,結(jié)果按從高到低排序

這一部分我們可以直接使用group by對銷售人員分組,使用聚合函數(shù)sum對銷售額進行求和,結(jié)果對銷售額使用order by 排序就可以。語句如下:

SELECT sales_name, sum( profit ) FROM spm_order GROUP BY sales_name ORDER BY sum( profit ) DESC


查詢結(jié)果

2、如果查詢結(jié)果要包含銷售的排名。

在mysql5.0中, 我們要定義一個排序自增的變量,讓它實現(xiàn)自動+1來作為一個新的列。語句如下:

SET @rank = 0;
SELECT
A.*,
@rank := @rank + 1 AS rank_no
FROM
( SELECT sales_name, sum( profit ) FROM spm_order GROUP BY sales_name ORDER BY sum( profit ) DESC ) A

這里的:=就是賦值的意思 這里的A就是把子查詢?nèi)∫粋€別名方便前面調(diào)用。

結(jié)果如下:


在這里插入圖片描述

二、mysql8.0

對于這個問題,在mysql8.0中有專門的的窗口函數(shù)可以調(diào)用,復(fù)雜問題簡單化。

語句如下:

SELECT
sales_name,
sum( sales ),
row_number ( ) over ( ORDER BY sum( sales ) DESC ) AS ‘rank'
FROM
spm_order
GROUP BY
sales_name

結(jié)果:


在這里插入圖片描述

在這里我們使用了[ row_number() over () ] ,在over()里面直接寫上我們要排序的內(nèi)容。
工作中企業(yè)基本都是用的5.0版本,所以多學(xué)習(xí)一下吧。

總結(jié)

以上所述是小編給大家介紹的Mysql8.0使用窗口函數(shù)解決排序問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • mysql詳細分析講解子查詢的使用

    mysql詳細分析講解子查詢的使用

    子查詢指一個查詢語句嵌套在另一個查詢語句內(nèi)部的查詢,這個特性從 MySQL 4.1開始引入,在SELECT子句中先計算子查詢,子查詢結(jié)果作為外層另一個查詢的過濾條件,查詢可以基于一個表或者多個表
    2022-04-04
  • mysql 詳解隔離級別操作過程(cmd)

    mysql 詳解隔離級別操作過程(cmd)

    這篇文章主要介紹了mysql 詳解隔離級別操作過程(cmd)的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • MySQL 5.0.96 for Windows x86 32位綠色精簡版安裝教程

    MySQL 5.0.96 for Windows x86 32位綠色精簡版安裝教程

    這篇文章主要介紹了MySQL 5.0.96 for Windows x86 32位綠色精簡版安裝教程,需要的朋友可以參考下
    2017-10-10
  • mysql 5.7以上版本安裝配置方法圖文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.14)

    mysql 5.7以上版本安裝配置方法圖文教程(mysql 5.7.12\mysql 5.7.13\mysql 5.7.

    這篇文章主要為大家分享了MySQL 5.7以上縮版本安裝配置方法圖文教程,包括mysql5.7.12、mysql5.7.13、mysql5.7.14安裝教程,包括感興趣的朋友可以參考一下
    2016-08-08
  • MySQL更新,刪除操作分享

    MySQL更新,刪除操作分享

    這篇文章主要介紹了MySQL更新,刪除操作分享,文章根據(jù)MySQL的更新刪除命令的相關(guān)資料展開詳細的介紹,需要的小伙伴可以參考一下,希望對你有所幫助
    2022-03-03
  • MySQL數(shù)據(jù)庫的備份與還原操作方法

    MySQL數(shù)據(jù)庫的備份與還原操作方法

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的備份與還原操作方法,文章圍繞主題展開詳細的內(nèi)容加入,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • 集群運維自動化工具ansible使用playbook安裝mysql

    集群運維自動化工具ansible使用playbook安裝mysql

    本文主要介紹了如何使用playbook安裝mysql,需要的朋友可以參考下
    2014-07-07
  • Mysql樹形遞歸查詢的實現(xiàn)方法

    Mysql樹形遞歸查詢的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Mysql樹形遞歸查詢的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • MySQL null的一些易錯點

    MySQL null的一些易錯點

    這篇文章主要介紹了MySQL null的一些易錯點,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-12-12
  • 根據(jù)status信息對MySQL服務(wù)器進行優(yōu)化

    根據(jù)status信息對MySQL服務(wù)器進行優(yōu)化

    網(wǎng)上有很多的文章教怎么配置MySQL服務(wù)器,但考慮到服務(wù)器硬件配置的不同,具體應(yīng)用的差別,那些文章的做法只能作為初步設(shè)置參考,我們需要根據(jù)自己的情況進行配置優(yōu)化,好的做法是MySQL服務(wù)器穩(wěn)定運行了一段時間后運行,根據(jù)服務(wù)器的”狀態(tài)”進行優(yōu)化。
    2011-09-09

最新評論