I have this data in SQL Server
| Name | Nationality | Gender |
|---|---|---|
| Anonymous | Chinese | M |
| Anonymous | Russian | F |
| Anonymous | German | F |
| Anonymous | Chinese | F |
| Anonymous | American | M |
| Anonymous | German | M |
I can return the count of nationalities separated by distinct values by:
SELECT
Nationality,
COUNT(*) AS [Nat.Count]
FROM
[table1]
GROUP BY
Nationality
| Nationality | Nat.Count |
|---|---|
| Chinese | 2 |
| Russian | 1 |
| German | 2 |
| American | 1 |
How can I do it so that I have a "Total" row appended to the bottom (see below)? ...just like AutoSum in Excel?
| Nationality | Nat.Count |
|---|---|
| Chinese | 2 |
| Russian | 1 |
| German | 2 |
| American | 1 |
| Total | 6 |
CodePudding user response:
As an alternative to using a UNION 
CodePudding user response:
Thats normally a front end job... its a bit odd to need to do it as part of your query. But if you have to...
SELECT Nationality, COUNT(*) AS [Nat.Count]
FROM [table1]
GROUP BY Nationality
UNION ALL
SELECT 'Total', COUNT(*)
FROM [table1]
