【发布时间】:2012-04-19 21:06:26
【问题描述】:
我有一个这样的 postgresql 表 userDistributions:user_id, start_date, end_date, project_id, distribution
我需要编写一个查询,其中给定的日期范围和用户 ID 的输出应该是该给定用户每天所有分布的总和。
所以输入的输出应该是这样的:'2-2-2012' - '2-4-2012',一些用户 ID:
Date SUM(Distribution)
2-2-2012 12
2-3-2012 15
2-4-2012 34
一个用户在许多项目中都有分布,所以我需要对每天所有项目中的分布求和,然后输出当天的总和。
我的问题是我应该针对什么分组?如果我有一个字段作为日期(而不是 start_date 和 end_date),那么我可以写类似 select date, SUM(distributions) from userDistributions group by date;
但在这种情况下,我不知道该怎么做。感谢您的帮助。
【问题讨论】:
-
您的数据库需要一个日历表。它使这类查询变得更加容易。
-
@GordonLinoff:你几乎不需要使用 PostgreSQL 的日历表,
generate_series更好。 -
您是否希望看到包含 0 个项目的日期的数据?
-
@Mike 很好,但没必要。
标签: sql postgresql