Giả sử được tạo
thuộc loại date
vì thiếu thông tin.
Postgres cung cấp generate_series ()
để làm cho việc này trở nên dễ dàng:
SELECT d.created, COUNT(s.id) AS ct
FROM (
SELECT generate_series(min(created)
, max(created), interval '1 day')::date AS created
FROM signups
) d
LEFT JOIN signups s USING (created)
GROUP BY 1
ORDER BY 1 DESC;
Điều này tự động truy xuất ngày tối thiểu và tối đa từ bảng của bạn và cung cấp một hàng mỗi ngày ở giữa.