Sql postgres查询count sales,当没有sales时返回零
我需要计算日期范围内的销售额。示例“2021-05-13”和“2021-05-20” 这是我的psql查询Sql postgres查询count sales,当没有sales时返回零,sql,postgresql,Sql,Postgresql,我需要计算日期范围内的销售额。示例“2021-05-13”和“2021-05-20” 这是我的psql查询 SELECT date(date_created), count(date_created) as total_count FROM users WHERE property_id = 1 AND date(date_created) BETWEEN '2021-05-13' AND '2021-05-20' GROUP BY date(date_created) ORDER BY d
SELECT date(date_created), count(date_created) as total_count
FROM users
WHERE property_id = 1
AND date(date_created) BETWEEN '2021-05-13' AND '2021-05-20'
GROUP BY date(date_created)
ORDER BY date(date_created) DESC
查询的结果如下
date |total_count
2021-05-17 |3
2021-05-16 |3
2021-05-15 |4
但是我需要返回0
,返回没有销售的天数。范例
date |total_count
2021-05-20 |0
2021-05-19 |0
2021-05-18 |0
2021-05-17 |3
2021-05-16 |3
2021-05-15 |4
2021-05-14 |0
2021-05-13 |0
知道怎么做吗?使用生成_series()
生成缺少的日期:
SELECT gs.date, count(u.date_created) as total_count
FROM GENERATE_SERIES('2021-05-13'::DATE, '2021-05-20'::date, INTERVAL '1 DAY') gs(date) LEFT JOIN
users u
ON u.date_created >= gs.date AND
u.date_created < gs.date + INTERVAL '1 DAY' AND
u.property_id = 1
GROUP BY gs.date
ORDER BY gs.date DESC;
选择gs.date,count(u.date\u created)作为总计数
从生成_系列('2021-05-13':日期,'2021-05-20':日期,间隔'1天')gs(日期)左连接
用户u
在u.date_created>=gs.date和
u、 创建日期
是一个数据小提琴,说明语法是正确的。对不起,语法是正确的吗?我在查询(7)中得到了这个错误:('2021-05-13'::日期,'2021-05-20'::日期,间隔1天)gs(…@Rolly…是的,有一个语法错误。我忽略了间隔常量周围的单引号。