Nâng caoTruy vấn nâng cao ~12 phút

Window function — ROW_NUMBER

Window function tính toán trên một 'cửa sổ' các dòng liên quan nhưng vẫn giữ nguyên từng dòng — khác với GROUP BY.

Lý thuyết

Cú pháp: ROW_NUMBER() OVER (PARTITION BY cột ORDER BY cột2).

  • PARTITION BY: chia thành các nhóm (giống GROUP BY nhưng không gộp dòng).
  • ORDER BY trong OVER: thứ tự đánh số bên trong mỗi nhóm.

Ứng dụng

Lấy 'người lương cao nhất mỗi phòng ban', đánh hạng, so với dòng trước/sau (LAG/LEAD)...

Kết quả giữ nguyên số dòng, thêm cột thứ hạng rn cho mỗi phòng ban.

Thuật ngữ (di chuột để xem giải thích)

Dữ liệu mẫu

Đang tải dữ liệu mẫu…