【发布时间】:2018-10-26 07:45:07
【问题描述】:
我有这个 SQL 查询,它使用 ROLLUP 来获取总数,但还需要每隔一行按金额排序:
SELECT
ISNULL([SharepointId], 'Total') as 'Sharepoint',
Count([Id]) as 'Nombre de tickets'
FROM [dbo].[Tickets]
GROUP BY ROLLUP([SharepointId])
ORDER BY 2 DESC, 1
有没有办法确保总数保持在结果的末尾,同时保持其他行的降序?
目前,这是我得到的:
Sharepoint Nombre de tickets
------------------ -----------------
Total 20326
INTERNE 9396
MAIN 1503
...
【问题讨论】:
-
如果你把order by子句改成升序,那么你肯定会保证总排在最后,除非所有票数都为零:
ORDER BY 2 ASC, 1 -
@PeterAbolins 要是能这么简单,我就得按降序排列。
-
ORDER BY GROUPING([SharepointId]), COUNT([id]) DESC: docs.microsoft.com/en-us/sql/t-sql/functions/…
标签: sql sql-server group-by sql-order-by rollup