在With子句中使用日期列分组

时间:2015-09-16 09:21:56

标签: sql group-by having-clause

customer    price   date
123         100     1-Jan-15
321         200     2-Jan-15
123         10      3-Jan-15
123         50      4-Jan-15
321         150     5-Jan-15
123         100     6-Jan-15
123         300     7-Jan-15
321         500     8-Jan-15
123         700     9-Jan-15

我想按照客户

查看3月1日至7月1日期间的SUM(价格)

类似的东西:

select customer,sum(price) from table group by customer 
having date between 3-Jan-2015 and 8-Jan-2015 

这会提示我在dateselect子句中group by。当我包含它时,它也按日期分组。

所需的输出是:

123 460

1 个答案:

答案 0 :(得分:2)

HAVING子句在分组和聚合之后过滤结果,因此为了做到这一点,HAVING子句中所需的任何字段都必须在{{1 }或GROUP BY列表。 SELECT子句在进行分组和聚合之前过滤行

要获得所需的结果,只需将WHERE条件移到date between...子句中:

WHERE