2017-10-11 83 views
0

使用GROUP BY ... WITH ROLLUP時,分組列中的小計/總計行數用NULL值表示。這是一個很好的功能,但我希望總數在細節值下,但NULL s在開始時排序。如何最後對NULL值進行排序 - 用「按彙總/立方體分組」組合彙總行

例子:

SELECT Year, Quarter, SUM(Amount) AS Amount 
FROM Table 
GROUP BY Year, Quarter WITH ROLLUP 
ORDER BY Year, Quarter 

Year|Quarter|Amount   Year|Quarter|Amount 
----|-------|------ ---> ----|-------|------ 
NULL| NULL| 120   1999|  1| 10 
1999| NULL| 40   1999|  2| 10 
1999|  1| 10   1999|  3| 10 
1999|  2| 10   1999|  4| 10 
1999|  3| 10   1999| NULL| 40 
1999|  4| 10   2000|  1| 20 
2000| NULL| 80   2000|  2| 20 
2000|  1| 20   2000|  3| 20 
2000|  2| 20   2000|  4| 20 
2000|  3| 20   2000| NULL| 80 
2000|  4| 20   NULL| NULL| 120 

如何在最後得到他們?

我知道我可以用某些東西替換NULL的值,這些東西可能在某些其他列中進行排序,但這是一個糟糕的解決方法。

+0

編輯問題添加樣本數據和期望的輸出,這可能有助於推導出解決方案。 –

+0

替代解決方案,是先排序您的NULL值然後休息。 –

+0

@YogeshSharma新增了一個例子,很好的建議。但我不明白你的替代​​解決方案。你能解釋一下嗎? –

回答

0

只要改變

ORDER BY Year, Quarter 

ORDER BY GROUPING(Year), Year, GROUPING(Quarter), Quarter 

說明:此功能適用於所有其他人返回1總行和0。