Bạn có thể tạo chuỗi dữ liệu bằng generate_series()
chức năng:
SELECT to_char(generate_series(min, max, '1 month'), 'Mon-YY') AS "Mon-YY"
FROM (
SELECT date_trunc('month', min(startdate)) AS min,
date_trunc('month', max(startdate)) AS max
FROM a) sub;
Điều này tạo ra một hàng cho mỗi tháng, ở một định dạng đẹp. Nếu bạn muốn có nó giống như một danh sách, bạn có thể tổng hợp tất cả chúng trong một truy vấn bên ngoài:
SELECT string_agg("Mon-YY", ', ') AS "Mon-YY list"
FROM (
-- Query above
) subsub;