Counting Groups Returned with the GROUP BY Clause in SQL Server

Q

How To Count Groups Returned with the GROUP BY Clause in SQL Server?

✍: FYIcenter.com

A

If you use the COUNT(*) function on groups returned with the GROUP BY clause, it will count the number of rows within each group, not the number of groups. If you want to count the number of groups, you can put the GROUP BY query into a subquery and apply the COUNT(*) function on the main query as shown in the following tutorial exercise:

SELECT tag AS Category, YEAR(created) AS Year, 
   COUNT(*) AS Counts FROM fyi_links GROUP BY tag, 
   YEAR(created)
GO
Category   Year   Counts
SQA        2003   1
DEV        2004   1
DBA        2005   1
DBA        2006   1
DEV        2006   1
DBA        2007   1
SQA        2007   1

SELECT COUNT(*) FROM (
   SELECT tag AS Category, YEAR(created) AS Year, 
   COUNT(*) AS Counts FROM fyi_links GROUP BY tag, 
   YEAR(created) ) groups
GO
7

 

Using SELECT Statements with Joins and Subqueries in SQL Server

⇒⇒SQL Server Database Tutorials

2016-10-29, 669👍, 0💬