国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MYSQL窗口函數(shù)(Rows & Range)——滑動窗口函數(shù)用法

這篇具有很好參考價值的文章主要介紹了MYSQL窗口函數(shù)(Rows & Range)——滑動窗口函數(shù)用法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

語法介紹

窗口函數(shù)語法:

<窗口函數(shù)> over (partition by <用于分組的列名>
order by <用于排序的列名>
rows/range子句<用于定義窗口大小> )

<窗口函數(shù)>可以放以下兩種函數(shù):
1) 專用窗口函數(shù),包括后面要講到的rank, dense_rank, row_number等專用窗口函數(shù)。
2) 聚合函數(shù),如sum. avg, count, max, min等

1)專用窗口函數(shù)

rank, dense_rank, row_number這三個函數(shù)的區(qū)別在這篇文章里有詳細(xì)介紹,簡略說就是:

  • Rank:有相同名次,名次按實際個數(shù)走,會跳數(shù)字。
  • Dense_rank: 有相同名次,名次不跳數(shù)
  • Row_number:相同分?jǐn)?shù)按行數(shù)排序
分?jǐn)?shù) Rank Dense_Rank Row_number
100 1 1 1
100 1 1 2
90 3 2 3

2)聚合函數(shù)

這里以sum()為例子,使用常用的部門員工數(shù)據(jù)集,介紹聚合函數(shù)的不同組合用法

例1: 求各個部門的薪酬總數(shù):

mysql滑動窗口函數(shù),Mysql,mysql,數(shù)據(jù)庫

3) 滑動窗口:rows&range用法

[<ROWS or RANGE clause> BETWEEN <Start expr> AND <End expr>]
  • ROWS: 表示按照行的范圍進(jìn)行定義框架,根據(jù)order by子句排序后,取的前N行及后N行的數(shù)據(jù)計算(與當(dāng)前行的值無關(guān),只與排序后的行號相關(guān))。常用:rows n perceding表示從當(dāng)前行到前n行(一共n+1行)
  • RANGE:表示按照值的范圍進(jìn)行定義框架,根據(jù)order by子句排序后,指定當(dāng)前行對應(yīng)值的范圍取值,行數(shù)不固定,只要行值在范圍內(nèi),對應(yīng)行都包含在內(nèi)。適用于對日期、時間、數(shù)值排序分組
邊界可取值(Start expr & End expr) 說明
Current Row 當(dāng)前行
N preceding 前 n 行,n 為數(shù)字, 比如 2 Preceding 表示前2行
unbounded preceding 開頭
N following 后N行,n 為數(shù)字, 比如 2 following 表示后2行
unbounded following 結(jié)尾
range取特定日期區(qū)間 說明
range interval 7-1 day preceding 最近7天的值
range between interval 1 day preceding and interval 1 day following 前后一天和當(dāng)天的值

列2:求按id號累計員工的薪資(rows 用法)

mysql滑動窗口函數(shù),Mysql,mysql,數(shù)據(jù)庫
注:如果將這里的rows 換成range 結(jié)果是一樣的,因為這里使用id號排序,id和行號一致。


例3:求每個員工的薪資情況以及對應(yīng)±1萬元及±5千元薪資范圍內(nèi)的人數(shù) (Range用法)

mysql滑動窗口函數(shù),Mysql,mysql,數(shù)據(jù)庫
Range 是根據(jù)值來組合排序的,結(jié)果中的第一行 Same的工資是60000, 而薪資范圍內(nèi)在50000-70000的人一共有4個,薪資范圍內(nèi)在55000-65000的人只有一個。


參考問題連接

累計問題: ??途W(wǎng) SQL159 每個創(chuàng)作者每月的漲粉率及截止當(dāng)前的總粉絲量
限制條件下的累計問題: ??途W(wǎng)SQL160 國慶期間每類視頻點贊量和轉(zhuǎn)發(fā)量
The RANGE Clause in SQL Window Functions: 5 Practical Examples文章來源地址http://www.zghlxwxcb.cn/news/detail-692846.html

到了這里,關(guān)于MYSQL窗口函數(shù)(Rows & Range)——滑動窗口函數(shù)用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • mysql中的窗口函數(shù)

    mysql中的窗口函數(shù)

    MySQL中的窗口函數(shù)(Window Functions)是一種用于在查詢結(jié)果集內(nèi)執(zhí)行計算的功能。窗口函數(shù)可以在查詢中進(jìn)行分析和聚合操作,而無需將查詢結(jié)果分組。它們可以用于計算排名、行號、累積值等各種分析操作。窗口函數(shù)通常與OVER子句一起使用,用于指定窗口的范圍。 常見的窗

    2024年02月12日
    瀏覽(17)
  • 【MySQL】MySQL版本8+ 窗口函數(shù) Lead 的兩種使用

    1709. 訪問日期之間最大的空檔期 表:UserVisits Column Name Type user_id int visit_date date 該表沒有主鍵,它可能有重復(fù)的行 該表包含用戶訪問某特定零售商的日期日志。 假設(shè)今天的日期是 ‘2021-1-1’ 。 編寫解決方案,對于每個 user_id ,求出每次訪問及其下一個訪問(若該次訪問是最

    2024年01月22日
    瀏覽(21)
  • 【SQL】MySQL中的窗口函數(shù)(開窗函數(shù))

    窗口函數(shù)是 MYSQL8.0 新增的 聚合函數(shù): 多行變一行,常見的sum,count,max,min 窗口函數(shù): 行數(shù)不變,常見的row_number,rank 語法格式: 窗口函數(shù)(表達(dá)式) over (partition by … order by … frame_clause) partition by是分區(qū),類似于group by,如去掉相當(dāng)于對所有數(shù)據(jù)進(jìn)行計算 order by排序 frame_c

    2024年02月07日
    瀏覽(21)
  • 深入MySQL窗口函數(shù):原理和應(yīng)用

    深入MySQL窗口函數(shù):原理和應(yīng)用

    在現(xiàn)代數(shù)據(jù)庫管理系統(tǒng)中,窗口函數(shù)(Window Functions)已經(jīng)成為處理復(fù)雜數(shù)據(jù)分析任務(wù)的關(guān)鍵工具。MySQL從8.0版本開始引入了對窗口函數(shù)的支持,這極大地增強了其在數(shù)據(jù)分析和報表生成方面的能力。本文將深入探討MySQL窗口函數(shù)的原理、應(yīng)用場景以及優(yōu)化策略。 窗口函數(shù)(

    2024年01月23日
    瀏覽(16)
  • MySQL8新特性:窗口函數(shù)(精講)

    MySQL8新特性:窗口函數(shù)(精講)

    本博主將用CSDN記錄軟件開發(fā)求學(xué)之路上親身所得與所學(xué)的心得與知識,有興趣的小伙伴可以關(guān)注博主! 也許一個人獨行,可以走的很快,但是一群人結(jié)伴而行,才能走的更遠(yuǎn)! 假設(shè)我現(xiàn)在有這樣一個數(shù)據(jù)表,它顯示了某購物網(wǎng)站在每個城市每個區(qū)的銷售額: 查詢: 需求:

    2024年02月13日
    瀏覽(27)
  • mysql日期函數(shù)用法大全

    一、 返回當(dāng)前日期 1、CURRENT_DATE()、CURRENT_DATE和CURDATE()用法相同:返回當(dāng)前日期 2、CURRENT_TIME()、CURRENT_TIME和CURTIME()用法相同:返回當(dāng)前時間 3、CURRENT_TIMESTAMP()、CURRENT_TIMESTAMP、LOCALTIMESTAMP()、LOCALTIMESTAMP、LOCALTIME()、LOCALTIME和NOW()用法相同:返回當(dāng)前日期和時間 4、SYSDATE():返回

    2024年02月15日
    瀏覽(20)
  • 【MySQL】MySQL的IFNULL()、ISNULL()、NULLIF()函數(shù)用法說明

    MySQL IFNULL 函數(shù)是 MySQL 控制流函數(shù)之一。 它有兩個參數(shù),第一個參數(shù)不為 NULL 時返回。 否則,IFNULL 函數(shù)返回第二個參數(shù)。 這兩個參數(shù)可以是文字值或表達(dá)式。 如果 expression1 不為 NULL,則 IFNULL 函數(shù)返回 expression1 ,否則返回 expression2 。 MySQL ISNULL() 函數(shù)用于檢查表達(dá)式 是否為

    2024年02月12日
    瀏覽(21)
  • 【MySQL】SQL的函數(shù)用法

    【MySQL】SQL的函數(shù)用法

    數(shù)據(jù)準(zhǔn)備 所謂聚合,就是將多行匯總成一行;其實,所有的聚合函數(shù)均如此——輸入多行,輸出一行。聚合函數(shù)具有自動濾空的功能,若某一個值為NULL,那么會自動將其過濾使其不參與運算。 Count() 統(tǒng)計表中數(shù)據(jù)的行數(shù)或者統(tǒng)計指定列其值不為NULL的數(shù)據(jù)個數(shù) 示例 Max() 計算

    2024年02月09日
    瀏覽(82)
  • MySQL中的cast()函數(shù)用法

    CAST()函數(shù),把一個字段轉(zhuǎn)成另一個字段,主要轉(zhuǎn)化的是字段的類型 其語法為:cast(字段名 as 轉(zhuǎn)換的類型 ) ? ? ? ? ? ? ? ? 轉(zhuǎn)換的類型共有: CHAR? ? ? ? ? ? 字符型 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DATE? ? ? ? ? ? 日期型 ? ? ? ? ? ? ? ? ? ? ? ? ? ?

    2024年02月11日
    瀏覽(85)
  • mysql 8.0 窗口函數(shù) 之 序號函數(shù) 與 sql server 序號函數(shù) 一樣

    mysql 8.0 窗口函數(shù) 之 序號函數(shù) 與 sql server 序號函數(shù) 一樣

    sql server 序號函數(shù) 序號函數(shù) ROW_NUMBER() 順序排序 RANK() 并列排序,會跳過重復(fù)的序號,比如序號為1,1,3 DENSE_RANK() 并列排序,不會跳過重復(fù)的序號,比如 序號為 1,1,2 語法結(jié)構(gòu) 窗口函數(shù)的優(yōu)點 使用窗口函數(shù),只用了一步就完成了查詢,而且,由于沒有用到臨時表,執(zhí)行的

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包