如何在一段时间内对数量进行分组

时间:2012-10-01 17:45:24

标签: sql

我试图对时间或期间的数量进行分组,我有下一个表

SALES SALES_DATE 的Sales_item SALES_QUANTITY

我正在做的查询

SELECT DATE,ITEM,SUM(QUANTITY) 
FROM SALES 
WHERE DATE BETWEEN "DATE1" AND "DATE2";

问题是我不需要DATE出现,如果我寻找十月的销售,它应该显示十月的总和而不显示日期...非常感谢你的帮助

实施例: 我得到了什么...

DATE         ITEM               SALES
2012-06-12   14152              7
2012-06-14   14152              15
2012-06-16   14157              25

我需要什么:06-12和06-16之间的查询

ITEM         SALES
14152        22
14157        25

非常感谢你

1 个答案:

答案 0 :(得分:1)

如果您希望按月计算总和,则可以按表达式将其包括在组中。这是一种方式:

SELECT extract(year from DATE) as yr, extract(month from date) as mon, ITEM, SUM(QUANTITY) 
FROM SALES 
WHERE DATE BETWEEN "DATE1" AND "DATE2"
group by extract(year from DATE), extract(month from date)
order by 1, 2

虽然extract是标准SQL,但并非所有数据库都支持它。例如,您可以在Oracle中使用to_char(date, 'YYYY-MM')或在SQL Server中使用datepart(month, date)