2024-11-26|閱讀時間 ‧ 約 0 分鐘

SQL 解鎖 - OVER()

OVER() 子句是Window Function的核心組成部分,用於在查詢結果集中定義一個「窗口」,使聚合函數或排名函數能夠在不改變原始數據結構的情況下,對特定資料進行計算。常搭配PARTITION BY將數據劃分成多個分群(類似GROUP BY,但不改變資料的結構、粒度),讓Window Function只在各自的分區內運行。



▌MS SQL SERVER 建立範例資料表


▌SUM() + OVER ()

1. 計算薪資總額

2. 累計薪資

3. 計算部門內薪資總額



▌排名

1. ROW_NUMBER() 為每行生成唯一的行號,按照指定排序。

2. RANK() 為每行生成排名,重複值有相同排名,後續排名會跳號。

3. DENSE_RANK() 與 RANK() 類似,但後續排名不跳號。



▌AVG() & COUNT()

- 使用 AVG() 計算部門內平均薪資

- 使用 COUNT() 計算部門內員工數



▌PERCENT_RANK() : 計算每個員工在其部門內的薪資 百分比 排名。


▌CUME_DIST(): 計算每個員工在其部門內的薪資累積 分布


▌NTILE(n): 將每個部門的員工薪水劃分為n等分。


▌VAR & STDEV 計算每個部門內薪資的變異數和 標準差 。


以下為本 練習題 的檔案(持續增加中),想拿資料作練習的朋友可以點下單連結,下載連結會寄至您提供的Email喔! 目前資源都是免費的,當然也歡迎您輸入金額小額贊助我們喔!

SQL 練習題 - Payhip



謝謝您花時間將此篇文章讀完,若覺得對您有幫助可以幫忙按個讚、分享來或是珍藏喔!也歡迎Follow我的ThreadsFB,持續追蹤生產力工具、商業分析、商業英文的實用範例,提升自己的職場力喔!

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.