SQL 與資料轉換 中階

SQL 視窗函數(Window Functions)

AI 練習作答

請說明 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 評分