【发布时间】:2019-03-21 06:12:26
【问题描述】:
我希望能够按天、周、月或根据我设置的间隔生成行组
按照这个solution,它在粒度为月时有效。但是尝试 1 周的间隔,没有返回任何记录。
这是我桌子上的行
这是我每月间隔的当前查询,效果很好。
SELECT *
FROM (
SELECT day::date
FROM generate_series(timestamp '2018-09-01'
, timestamp '2018-12-01'
, interval '1 month') day
) d
LEFT JOIN (
SELECT date_trunc('month', created_date)::date AS day
, SUM(escrow_amount) AS profit, sum(total_amount) as revenue
FROM (
select distinct on (order_id) order_id, escrow_amount, total_amount, create_time from order_item
WHERE created_date >= date '2018-09-01'
AND created_date <= date '2018-12-01'
-- AND ... more conditions
) t2 GROUP BY 1
) t USING (day)
ORDER BY day;
此查询的结果
这是每周间隔查询。为简洁起见,我会将范围缩小到两个月。
SELECT *
FROM (
SELECT day::date
FROM generate_series(timestamp '2018-09-01'
, timestamp '2018-11-01'
, interval '1 week') day
) d
LEFT JOIN (
SELECT date_trunc('week', created_date)::date AS day
, SUM(escrow_amount) AS profit, sum(total_amount) as revenue
FROM (
select distinct on (order_id) order_id, escrow_amount, total_amount, create_time from order_item
WHERE created_date >= date '2018-09-01'
AND created_date <= date '2018-11-01'
-- AND ... more conditions
) t2 GROUP BY 1
) t USING (day)
ORDER BY day;
请注意,我有 10 月的记录,但此处的结果没有显示 10 月日期的任何内容。
知道我在这里缺少什么吗?
【问题讨论】:
标签: postgresql