日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本中文字幕一区二区 | 久久草国产 | 中文久久精品 | 91青青青 | 日日日干干干 | 中文字幕一区二区三区免费视频 | 四虎永久在线 | 手机在线观看免费av | 美日韩av在线 | 巨物撞击尤物少妇呻吟 | 不卡国产在线 | 在线中文字幕第一页 | 久久99热精品 | 18av在线视频| 熟女视频一区二区三区 | 国产精品久久777777 | 成人免费看类便视频 | 手机在线看黄色 | 色妞综合 | 人人艹在线观看 | av黄色小说 | 久久精品久久精品久久 | 国产精品88av | 一级片免费在线观看 | 日韩第1页| 日韩欧美黄色片 | 男女无遮挡做爰猛烈视频 | 免费黄av| www.四虎影视.com| 91精产国品| 日日干av| 五月天免费网站 | 亚洲综合av一区二区 | mm1313亚洲国产精品美女 | 四虎影院一区二区 | 狼人伊人干 | 九九在线观看视频 | 黄色视屏免费 | 涩五月婷婷 | √天堂8资源中文在线 | 成人一级毛片 | 欧美少妇一区二区三区 | 91无打码| 国产永久免费无遮挡 | 五月婷婷激情五月 | 欧美日国产 | 中文字幕在线观看一区二区三区 | 国产极品粉嫩 | 国精产品一二三区精华液 | 国产做受视频 | 色香蕉在线 | 久久人人爽人人爽人人片av高清 | 一本色综合| 欧美性猛交一区二区三区精品 | 中文有码在线播放 | 老牛嫩草二区三区观影体验 | 无码人妻h动漫 | 国产精品无码白浆高潮 | 日韩美女视频在线观看 | 日本成人一级片 | 欧美日韩亚洲国产精品 | 日本xxxxxwwwww | 国产精品久久久久久福利 | 91丨porny丨九色 | 金鱼妻日剧免费观看完整版全集 | 国产18照片色桃 | 修女也疯狂3免费观看完整版 | 国产网红在线观看 | 真实的中国女人做爰 | 日本国产中文字幕 | 黄在线免费 | 成人91在线 | 性史性农村dvd毛片 日韩精品在线视频观看 | 久久国产亚洲精品无码 | 一级特级黄色片 | 天堂网av2014 | 国产男女在线 | 日本免费黄色 | 麻豆毛片 | 天天躁狠狠躁 | 欧美色图亚洲激情 | 91黄色在线视频 | 欧美性xxxxx 亚洲特黄一级片 | 久久日韩精品 | 蜜桃视频污在线观看 | 欧美放荡办公室videos4k | 黄色在线免费观看网站 | 欧洲mv日韩mv国产 | 国产 福利 在线 | 久久亚洲精 | 亚洲乱码国产乱码精品精剪 | 国产一区二区激情视频 | 伦理片中文字幕 | 午夜99 | 国产精品久久久久999 | 青青av在线 | 欧美成人免费网站 | 一本—道久久a久久精品蜜桃 | 日本中文字幕有码 |