Cơ BảnPostgreSQL iconPostgreSQL

CTE trong PostgreSQL dùng khi nào?

CTE (WITH) giúp đặt tên subquery, chia query phức tạp thành bước dễ đọc, hoặc dùng trong data-modifying statements. PostgreSQL hiện đại có thể inline CTE khi phù hợp; nhưng materialization vẫn là điều cần hiểu khi tối ưu.

Ví dụ:

sql
WITH paid_orders AS (
  SELECT * FROM orders WHERE status = 'paid'
)
SELECT user_id, count(*) FROM paid_orders GROUP BY user_id;

Dùng CTE để làm rõ logic, nhưng kiểm plan nếu query performance quan trọng.

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

Mở danh sách PostgreSQL