Member-only story

SQL 解鎖: OVER()

DigNo Ape
Nov 25, 2024

--

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() 計算部門內員工數

--

--

DigNo Ape
DigNo Ape

Written by DigNo Ape

我們秉持著從原人進化的精神,不斷追求智慧的累積和工具的運用來提升生產力。我們相信,每一個成員都擁有無限的潛力,透過學習和實踐,不斷成長和進步。

No responses yet