Se você estiver no SQL Server 2008 ou versão posterior, poderá usar o
ROLLUP()
Função AGRUPAR POR:SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
Isso pressupõe que o
Type
A coluna não pode ter NULLs e, portanto, o NULL nesta consulta indicaria a linha de rollup, aquela com o total geral. No entanto, se o Type
coluna pode ter NULLs próprios, o tipo mais adequado de contabilidade para a linha total seria como na resposta do @Declan_K, ou seja, usando o GROUPING()
função:SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;