Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Adicionar uma linha de resumo com totais


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)
;