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

MySQL數(shù)據(jù)庫基礎篇SQL窗口函數(shù)示例解析教程

 更新時間:2021年10月26日 09:27:11   作者:數(shù)據(jù)分析與統(tǒng)計學之美  
這篇文章主要為大家介紹了MySQL數(shù)據(jù)庫基礎篇之窗口函數(shù)示例解析教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步

本文簡介

前段時間,黃同學寫了一篇《MySQL窗口實戰(zhàn)》文章(文章如下),但是里面大多數(shù)是以實戰(zhàn)練習為主,沒有做詳細的解釋。

傳送門:MySQL實戰(zhàn)窗口函數(shù)SQL分析班級學生考試成績及生活消費

于是,私信了月牙美女,看看她能否寫一篇《窗口函數(shù)基礎篇》,正好和之前那篇文章配套。這不,很快她就寫好了,今天就給大家做一個分享,旨在和大家交流學習哦!

下面是月牙的玩笑簡介,附帶大圖一張哦。

正文介紹

窗口函數(shù),也被稱為 “開窗函數(shù)”,MySQL8.0以后,就可以使用這些函數(shù)了。

我們在力扣刷題的時候,不難發(fā)現(xiàn),比較困難的題目經常會涉及到窗口函數(shù)的應用,可以說窗口函數(shù),是檢驗我們的SQL水平是否到達熟練水平的一個標尺。

窗口函數(shù)的格式為: 聚合函數(shù)+over()

窗口是描述over()括號內劃定的內容,這個內容就是窗口函數(shù)的作用域,即操作的數(shù)據(jù)都在over()的范圍內。

對于窗口函數(shù),我個人的理解是給源數(shù)據(jù)開一扇可以滑動的窗口,在窗口移動的時候可以對其中的數(shù)據(jù)進行附加計算,如移動平均、分組排序等,窗口可以是一行多行甚至是所有行。

窗口函數(shù),還可以對多組數(shù)據(jù)進行同步排序、聚合等運算,針對group by子句或where處理后的結果進行操作,只能寫入select子句里。

靈魂畫手上線,用Excel簡單做了個簡易版的窗口函數(shù)的演示圖:

在這里插入圖片描述

聚合函數(shù) + over()

基本語法:

sum/avg(被加工的字段名) over(partition by 分組的字段名 order by 排序的字段名 rows between … and …)

含義: 表示用partition by分組后針對每個組別進行求和或者求均值。

--包括本行以內和前3行:rows between 6 preceding and current row
--包括本行以內和后3行:rows between current row and 3 following
--包括本行和之前所有的行:rows between unbounded preceding and current row
--包括本行和之后所有的行:rows between current row and unbounded following
--從前3行到下1行(總共包含5行數(shù)據(jù)):rows between 3 preceding and 1 following

還有一些其它的聚合函數(shù),例如max、min、count,它們的語法結構都類似。

排序函數(shù) + over()

row_number()、rank()、dense_rank()這三個函數(shù),都是對select查詢到的結果進行排序,我們來看看這三者的區(qū)別。

row_number(): 為不重復的連續(xù)排序,從1開始,為查詢到的數(shù)據(jù)依次生成不重復的序號進行排序

基本語法——row_number() over(order by 需要排序的字段asc/desc);

rank(): 為跳躍排序,結果相同的兩個數(shù)據(jù)并列,為下一個數(shù)據(jù)空出所占的名次,即相同排名會占位

基本語法——rank() over(order by 需要排序的字段 asc/desc);

dense_rank(): 為有重復的連續(xù)排序,結果相同的兩個數(shù)據(jù)并列,不為下一個數(shù)據(jù)空出所占的名次,即相同排名不占位

基本語法——dense_rank() over(order by 需要排序的字段 asc/desc);

我們用一張圖來表示這三者間的關系:

在這里插入圖片描述

ntile()函數(shù) + over()

基本語法: ntile(n) over(partition by…order by…)其中n表示被切分的段數(shù)。

ntile(n)用于將分組數(shù)據(jù)平均切分成n塊,如果切分的每組數(shù)量不均等,則第一組分得的數(shù)據(jù)更多。

ntile()函數(shù)通常用于比如求年級前10%成績的學生,則n取值為10,用where篩選出第一組的數(shù)據(jù)。

偏移函數(shù) + over()

基本語法1:前N行:lead(str, n, default) over(partition by …order by …)

基本語法2:后N行:lag(str, n, default) over(partition by …order by …)

str表示字段名,n表示前/后n行數(shù)據(jù),默認值為1,default表示如果取值范圍已經超過整個表的返回值,可以不填,不填默認返回N/A。

偏移函數(shù),用于取出同一字段的前N行數(shù)據(jù)或后N行數(shù)據(jù),作為單獨的列,這里需要特別注意一下的是,lead代表前N行,lag代表后N行。

以上就是MySQL數(shù)據(jù)庫基礎篇窗口函數(shù)示例解析教程的詳細內容,更多關于MySQL窗口函數(shù)基礎的資料請關注腳本之家其它相關文章!

相關文章

  • mysql 5.7.25 安裝配置方法圖文教程

    mysql 5.7.25 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.25 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • MySql的優(yōu)化步驟介紹(推薦)

    MySql的優(yōu)化步驟介紹(推薦)

    下面小編就為大家?guī)硪黄狹ySql的優(yōu)化步驟介紹(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • MySQL自動停機的問題處理實戰(zhàn)記錄

    MySQL自動停機的問題處理實戰(zhàn)記錄

    這篇文章主要給大家介紹了關于MySQL自動停機的問題處理,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-05-05
  • mysql中Load Data記錄換行問題的解決方法

    mysql中Load Data記錄換行問題的解決方法

    有關mysql中Load Data記錄換行的問題的解決方法, 需要的朋友可以參考下
    2013-02-02
  • mysql tmp_table_size優(yōu)化之設置多大合適

    mysql tmp_table_size優(yōu)化之設置多大合適

    這篇文章主要介紹了mysql tmp_table_size優(yōu)化問題,很多朋友都會問tmp_table_size設置多大合適,其實既然你都搜索到這篇文章了,一般大于64M比較好,當然你也可以可以根據(jù)自己的機器內容配置增加,一般64位的系統(tǒng)能充分利用大內存
    2016-05-05
  • MySQL的表空間是什么

    MySQL的表空間是什么

    這篇文章主要介紹了MySQL的表空間是什么,幫助大家更好的理解和使用MySQL表的相關知識,感興趣的朋友可以了解下
    2020-11-11
  • Mysql索引會失效的幾種情況分析

    Mysql索引會失效的幾種情況分析

    在做項目的過程中,難免會遇到明明給mysql建立了索引,可是查詢還是很緩慢的情況出現(xiàn),下面我們來具體分析下這種情況出現(xiàn)的原因及解決方法
    2014-06-06
  • MySQL 如何修改root用戶的密碼

    MySQL 如何修改root用戶的密碼

    這篇文章主要介紹了MySQL 如何修改root用戶的密碼,幫助大家更好的使用MySQL,不用擔心忘記密碼,感興趣的朋友可以了解下
    2020-09-09
  • CentOS 7 安裝解壓版mysql5.7的教程

    CentOS 7 安裝解壓版mysql5.7的教程

    這篇文章主要介紹了CentOS 7 安裝解壓版mysql5.7的教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • MySQL replace into 語句淺析(二)

    MySQL replace into 語句淺析(二)

    這篇文章主要介紹了MySQL replace into 語句淺析(二),本文著重給出了幾個特殊案例分析,需要的朋友可以參考下
    2015-05-05

最新評論