这是我的表订单
如果我想在每个确切的年份中获得订单数量,我只需编写此查询
Select COUNT(*) CountOfOrders, Year(OrderDate) Year
From Orders
Group by YEAR(OrderDate)
所以有这个结果集
但是,如果我需要这个结果集,该怎么办?
CoundOfOrder FromYear_toYear
5 2005-2010
4 2010-2015
答案 0 :(得分:6)
您可以尝试此查询。这将以最简单的方式帮助您。
SELECT COUNT(*),(CONVERT(VARCHAR,MIN(year(orderdate)))+'-' + CONVERT(VARCHAR,MAX(year(orderdate)))) AS yearRange
FROM orders
GROUP BY FLOOR(Year(OrderDate) /5)
您可以参考使用您的示例的链接SQL_Fiddle_Link来形成此查询。
答案 1 :(得分:3)
Select COUNT(*) CountOfOrders,
CASE WHEN Year(OrderDate) BETWEEN 2005 AND 2009 THEN '2005-2009'
WHEN Year(OrderDate) BETWEEN 2010 AND 2015 THEN '2010-2015'
END AS Year
From Orders
Group by
CASE WHEN Year(OrderDate) BETWEEN 2005 AND 2009 THEN '2005-2009'
WHEN Year(OrderDate) BETWEEN 2010 AND 2015 THEN '2010-2015'
END
请注意,我调整了您的日期范围,或者您无法获得有意义的数据,只计算两个类别中的某些内容。