日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

plsql打开sql窗口快捷键_SQL干货|为你打开一扇窗—窗口函数

發(fā)布時(shí)間:2025/3/15 数据库 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 plsql打开sql窗口快捷键_SQL干货|为你打开一扇窗—窗口函数 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

很早之前就想寫一篇關(guān)于窗口函數(shù)的文章,因精力有限所以一直擱置了(一臉認(rèn)真的自我檢討),在這篇文章的準(zhǔn)備階段,我也拜讀了一些相關(guān)文章,總體來(lái)說(shuō)基本上所涉及的窗口函數(shù)相關(guān)知識(shí)均有涉及,但一萬(wàn)個(gè)讀者有一萬(wàn)個(gè)哈姆雷特,每個(gè)人的文章角度不同,本文主要是面向基礎(chǔ),希望能夠用通俗易懂的話語(yǔ)同時(shí)結(jié)合實(shí)際高頻面試題為大家打開(kāi)一扇“窗”。

正文

一、窗口函數(shù)簡(jiǎn)介

窗口函數(shù)也稱為OLAP函數(shù)。OLAP是online analytical processing的簡(jiǎn)稱,意思是對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理。——百度百科

窗口函數(shù)的基本語(yǔ)法如下:

<窗口函數(shù)> over (partition by <用于分組的列名> order by <用于排序的列名>)

窗口函數(shù)是針對(duì)定義的行集合執(zhí)行聚集分析,不減少原表的行數(shù)同時(shí)具備分組與排序的功能;通俗一點(diǎn)講,窗口函數(shù)會(huì)按照指定的列名分組,在組內(nèi)進(jìn)行排序,同時(shí)保持原表行數(shù)不發(fā)生變化;這與group by 分組聚合后每組返回一個(gè)值(原表行數(shù)改變)有明顯的區(qū)別。

窗口函數(shù)關(guān)鍵字:

over() : over子句中的內(nèi)容為窗口函數(shù)的作用域(范圍)

partition by :分組

order by : 排序

二、常用窗口函數(shù)介紹

1、排序函數(shù)

  • rank() 如果有并列名次的行,會(huì)占用下一名次的位置
  • dense_rank() 如果有并列名次的行,不會(huì)占用下一名次的位置
  • row_number() 不考慮并列名次的情況
select *, rank() over (order by 金額 asc) as ranking, dense_rank() over (order by 金額 asc) as dens_rank, row_number() over (order by 金額 asc) as row_num from table

排序函數(shù)區(qū)別示意表

常用場(chǎng)景:

排序函數(shù)常用于組內(nèi)排序問(wèn)題,如:topN問(wèn)題 (找出每個(gè)部門排名前N的員工)

2、偏移函數(shù)

--基本語(yǔ)法lag(exp_str,offset,defval) over()Lead(exp_str,offset,defval) over()--exp_str要取的列--offset取偏移后的第幾行數(shù)據(jù)--defval:沒(méi)有符合條件的默認(rèn)值
  • lag() lag是用于統(tǒng)計(jì)窗口內(nèi)往上(向前偏移)第n行值
  • lead() lead是用于統(tǒng)計(jì)窗口內(nèi)往下(向后偏移)第n行值
select *,lag(要偏移的列) over(partition by department order by 要排序的列) as next_lag from table --------------------------------------------------------------------------------------- select *,lead(要偏移的列) over(partition by department order by 要排序的列) as next_lead from table

偏移函數(shù)lag示意圖

偏移函數(shù)lead示意圖

常用場(chǎng)景:

多用于解決用戶連續(xù)登錄問(wèn)題,如連續(xù)7天都登陸的用戶數(shù)

拓展:

偏移函數(shù)還有first_value()、last_value(),感興趣的同學(xué)可以自行學(xué)習(xí),本文不作介紹。

3、聚合函數(shù)

  • sum()
  • avg()
  • count()
  • max()
  • min()
select * ,sum(需要計(jì)算的列名) over (order by 需要計(jì)算的列名) as sum, avg(需要計(jì)算的列名) over (order by 需要計(jì)算的列名) as avg, count(需要計(jì)算的列名) over (order by 需要計(jì)算的列名) as cot, max(需要計(jì)算的列名) over (order by 需要計(jì)算的列名) as max, min(需要計(jì)算的列名) over (order by 需要計(jì)算的列名) as min from table

聚合函數(shù)在窗口函數(shù)中是針對(duì)自身記錄、以及自身記錄之上的所有數(shù)據(jù)進(jìn)行計(jì)算。

聚合函數(shù)作為窗口函數(shù),可以直觀的看到,截止到本行數(shù)據(jù),統(tǒng)計(jì)數(shù)據(jù)是多少(最大值、最小值等);同時(shí)可以看出每一行數(shù)據(jù),對(duì)整體統(tǒng)計(jì)數(shù)據(jù)的影響。

三、代碼實(shí)操(經(jīng)典問(wèn)題)

本文代碼只展示基本框架,如遇同類問(wèn)題,直接代入使用即可

1、排序

topN問(wèn)題 (找出每個(gè)部門排名前N的員工)

select * from (select *, row_number() over (partition by 要分組的列名order by 要排序的列名 desc) as rankingfrom 表名) as a where ranking <= N

2、偏移

user_name 用戶名(連續(xù)7天都登陸的用戶數(shù))

思路:

  • 首先利用偏移窗口函數(shù)lead()求得每個(gè)用戶在每個(gè)登陸時(shí)間向后偏移7行的登陸時(shí)間;(需要注意:date 按倒序排序)
  • 再計(jì)算每個(gè)用戶在每個(gè)登陸時(shí)間滯后7天的登陸時(shí)間;
  • 如果每個(gè)用戶向后偏移7行的登陸時(shí)間等于滯后7天的時(shí)間,說(shuō)明該用戶連續(xù)登陸了7天
  • select b.user_name from (select user_name, date,lead(date,7,-1) over(partition by user_name order by date desc) as date_7 from user_login_table) b where date_sub(cast(b.date as date,7)) = cast(b.date_7 as date)

    四、總結(jié)

    本文主要介紹了窗口函數(shù)的基本概念以及幾種高頻窗口函數(shù)的用法,在實(shí)際工作中窗口函數(shù)是經(jīng)常用到的,可能乍一看不是很好理解,這是正常現(xiàn)象,多練習(xí)肯定沒(méi)問(wèn)題。

    以上,如果覺(jué)得有點(diǎn)用,請(qǐng)記得點(diǎn)贊關(guān)注,謝謝!

    總結(jié)

    以上是生活随笔為你收集整理的plsql打开sql窗口快捷键_SQL干货|为你打开一扇窗—窗口函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 欧美日韩在线播放 | 极品少妇xxxx精品少妇偷拍 | 91人人澡人人爽 | 在线中文字幕亚洲 | 中文字幕校园春色 | 国产午夜大片 | 99精品在线播放 | 少妇人妻偷人精品视频蜜桃 | 丰满少妇在线观看bd | 日韩av在线影院 | 久久精视频 | 日本成人片在线 | 一区二区三区www污污污网站 | www.久久久久久久 | 精品国产91久久久久久久妲己 | 欧美xxxx黑人又粗又长密月 | 99riav国产精品 | 91黑丝视频 | 午夜久久网 | 一区二区三区四区影院 | 日批视频在线免费看 | 国产伦精品一区二区三区网站 | 日韩精品综合 | 中文资源在线观看 | 美女让男人捅 | 日本三级吃奶头添泬无码苍井空 | 中文字幕一区电影 | 国产在线视频资源 | 亚洲综合在| 四虎视频国产精品免费入口 | 日韩精彩视频在线观看 | 成人a v视频 | 欧美在线播放一区二区 | 欧美韩日一区二区 | 波多野结衣在线 | 91视频毛片 | 亚洲第一页色 | 欧美日韩视频一区二区 | 日韩欧美91 | 日本一级片在线播放 | 尤物国产视频 | 东北少妇不带套对白 | 波多野结衣在线视频免费观看 | 深爱五月激情五月 | 99re色 | 免费99精品国产自在在线 | 色就是色欧美色图 | 久久一区二区三区精品 | 日韩av毛片在线观看 | 午夜激情成人 | 日本熟妇色xxxxx日本免费看 | 日本福利小视频 | 亚洲乱色熟女一区二区三区 | 成人免费看片' | 短篇山村男同肉耽h | 老牛影视一区二区三区 | 滋润少妇h高h | av免费在线观看网站 | 一级特毛片 | 羞羞的视频在线观看 | av在线播放中文字幕 | 95视频在线 | 辟里啪啦国语版免费观看 | 在线观看三级视频 | 波多野结衣在线视频免费观看 | 日韩porn | 美女视频黄色在线观看 | 国产精品国语对白 | 韩国无码av片在线观看网站 | 加勒比在线免费视频 | 日日操夜夜撸 | www.狠狠操.com| 伊人久久影视 | 国产视频一区二区视频 | 亚洲淫片| 欧美日韩三区 | 久久精品2019中文字幕 | 天堂va欧美va亚洲va老司机 | 五月天av影院 | 超碰在线人人草 | 日韩中文第一页 | 国产精品性爱在线 | 极品91尤物被啪到呻吟喷水 | 日韩精品人妻一区二区三区免费 | 欧美日韩一区二区精品 | 国产特级毛片aaaaaa | 欧美丰满熟妇xxxx | 少妇一级淫片免费放 | 三级视频网址 | 91丨九色 | 91精品久久久久久久久久入口 | 卡一卡二在线视频 | 五月天精品在线 | 国产视频一区二区三区在线 | 在线成人中文字幕 | 色涩综合 | 国产高清视频在线播放 | 国产精品一区二区三区在线看 | av中文资源在线 |