繁体   English   中英

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

[英]Group By with date column in the 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 

这提示我在selectgroup by子句中有date 当我包含它时,它也按日期分组。

期望的输出是:

123 460

HAVING子句在分组和聚合之后过滤结果,因此为了做到这一点, HAVING子句中所需的任何字段必须位于GROUP BYSELECT列表中。 WHERE子句执行分组和聚合之前过滤行。

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

SELECT customer,SUM(price)
  FROM table
  WHERE date BETWEEN 3-Jan-2015 AND 8-Jan-2015
  GROUP BY customer 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM