SQL 與資料轉換 中階
SQL 視窗函數(Window Functions)
請說明 SQL 視窗函數的用途與常見函數。
什麼是視窗函數
視窗函數在不消除行的前提下對一組相關行進行計算,與 GROUP BY 不同,每行都保留在結果集中。
語法
函數名() OVER (PARTITION BY 欄位 ORDER BY 欄位)
排名函數
ROW_NUMBER():每行唯一編號,無並列。RANK():並列時排名相同,下一排名跳號。DENSE_RANK():並列時排名相同,下一排名不跳號。
聚合函數
SUM() OVER (PARTITION BY dept):各部門累計,每行保留。AVG() OVER (ORDER BY date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW):滾動 7 日平均。
位移函數
LAG(col, 1):取上一行的值(計算環比增長)。LEAD(col, 1):取下一行的值。
使用場景
排行榜、滾動統計、環比/同比計算、Top-N per Group。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
