Trung BìnhPostgreSQL iconPostgreSQL

Window function trong PostgreSQL dùng khi nào?

Window function tính toán trên tập rows liên quan mà không collapse rows như GROUP BY. Nó phù hợp ranking, running total, moving average, dedup theo row_number hoặc so sánh row hiện tại với row trước.

Ví dụ lấy order mới nhất mỗi user:

sql
SELECT * FROM (
  SELECT orders.*, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) AS rn
  FROM orders
) t
WHERE rn = 1;

Window function thường giúp tránh query N+1 hoặc logic xử lý ranking ở app.

Xem toàn bộ PostgreSQL cùng filter theo level & chủ đề con.

Mở danh sách PostgreSQL