计算日期范围内每个日期的销售数量,postgresql

时间:2015-05-12 19:40:49

标签: postgresql

我有一张桌子,每个产品的销售都有一排。这些行包含日期。我想知道一个范围内每个不同日期销售的产品数量(用户指定开始日期和结束日期。)每个销售都有一个明确的行,因此在销售多个产品的日子里,存在多个具有此日期的行。我想计算这些行的数量,具有相同的日期。如何在postgresql中有效地完成这项工作?

实施例

2015-01-02: 0
2015-01-03: 7
2015-01-04: 2

1 个答案:

答案 0 :(得分:1)

假设日期列存储为datetime,这样的事情可以让你朝着正确的方向前进:

SELECT date_trunc('day', TIMESTAMP sales.date) as day, COUNT(*)
FROM sales
WHERE day >= start and <= end
GROUP BY day;

用户填写startend

有关postgres日期功能的更多文档,请点击此处: http://www.postgresql.org/docs/9.4/static/functions-datetime.html

如果他们 datetime,您可以使用to_date函数和相应的格式字符串转换为datetime并使用上面的解决方案:

SELECT date_trunc('day', to_date('2015-01-02', 'YYYY-MM-DD'));

http://www.postgresql.org/docs/9.4/static/functions-formatting.html