如何最后对NULL值进行排序 - 用“按汇总/立方体分组”组合汇总行
问题描述:
使用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
的值,这些东西可能在某些其他列中进行排序,但这是一个糟糕的解决方法。
答
只要改变
ORDER BY Year, Quarter
到
ORDER BY GROUPING(Year), Year, GROUPING(Quarter), Quarter
说明:此功能适用于所有其他人返回1总行和0。
编辑问题添加样本数据和期望的输出,这可能有助于推导出解决方案。 –
替代解决方案,是先排序您的NULL值然后休息。 –
@YogeshSharma新增了一个例子,很好的建议。但我不明白你的替代解决方案。你能解释一下吗? –