SELECT Municipio, LEFT(LTRIM(Municipio), 3), LEFT(LTRIM(Municipio), 2),
CASE
WHEN GROUPING(LEFT(LTRIM(Municipio), 3)) = 0 AND GROUPING(LEFT(LTRIM(Municipio), 2)) = 0 AND GROUPING(Municipio) = 0 THEN 'Linea'
WHEN GROUPING(LEFT(LTRIM(Municipio), 3)) = 0 AND GROUPING(LEFT(LTRIM(Municipio), 2)) = 0 AND GROUPING(Municipio) = 1 THEN 'Total agrupacion LEFT(3)'
WHEN GROUPING(LEFT(LTRIM(Municipio), 3)) = 1 AND GROUPING(LEFT(LTRIM(Municipio), 2)) = 0 AND GROUPING(Municipio) = 1 THEN 'Total agrupacion LEFT(2)'
ELSE 'Total' END,
SUM(Total) AS Total, SUM(residente) AS Residente, SUM(reside) AS Reside, SUM(residetrabaja) AS ResideTrabaja, SUM(resideestudia) AS ResideEstudia
FROM Tabla
GROUP BY LEFT(LTRIM(Municipio), 2), LEFT(LTRIM(Municipio), 3), Municipio WITH ROLLUP