在SQL里面使用 GROUP BY GROUPING SETS 进行分组统计,如何按照SUM的列排序

你条草 发布于 2013/02/05 16:25
阅读 3K+
收藏 0
SQL

有关 GROUP BY GROUPING SETS 进行分组统计, 

如 下,如何按照年度订单量排序

SELECT Year( OrderDate ) AS Year, 
        Quarter( OrderDate ) AS Quarter, 
        COUNT (*) AS Orders 
FROM SalesOrders
GROUP BY GROUPING SETS ( ( Year, Quarter ), ( Year ) )
ORDER BY Year, Quarter;

此查询会返回以下结果:

Year  Quarter  Orders
1 2000   (NULL) 380
2 2000 1 87
3 2000 2 77
4 2000 3 91
5 2000 4 125
6 2001 (NULL) 268
7 2001 1 139
8 2001 2 119
9 2001 3 10

以下是问题补充:

@你条草:例子抄的 ,没列举好…… 若按照年度订单总量按照年度升序排序,即结果为6~9列与1~5列位置交换 (2013/02/07 08:09)
加载中
0
ptrr
ptrr
还得来个select
0
StormFour
StormFour

order by nulls last可以吗?

 

0
扁-哥
扁-哥
select *from xx where quarter is null order by orders
扁-哥
扁-哥
我理解错了…评论也删不掉
0
StormFour
StormFour

select year, quarter, sum(orders)
  from salesorders
 group by grouping sets((year, quarter), year)
 order by year, quarter nulls last;

 

你条草
你条草
很好,不过我要的是……2000年跟2001年两个块的数据,根据sum(orders)这列排序,如果是升序的话,则6~9行,与1~5行互换
返回顶部
顶部