MS SQL Server Concepts and Programming Question:
Download Job Interview Questions and Answers PDF
How To Count Groups Returned with the GROUP BY Clause in MS SQL Server?
Answer:
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 ggl_links GROUP BY tag,
YEAR(created)
GO
<pre>
Category Year Counts
HTML 2003 1
XML 2004 1
CSS 2005 1
SQL 2006 1
SEO 2006 1
JavaScript 2007 1
JOBS 2007 1
</pre>
SELECT COUNT(*) FROM (
SELECT tag AS Category, YEAR(created) AS Year,
COUNT(*) AS Counts FROM ggl_links GROUP BY tag,
YEAR(created) ) groups
GO
7
SELECT tag AS Category, YEAR(created) AS Year,
COUNT(*) AS Counts FROM ggl_links GROUP BY tag,
YEAR(created)
GO
<pre>
Category Year Counts
HTML 2003 1
XML 2004 1
CSS 2005 1
SQL 2006 1
SEO 2006 1
JavaScript 2007 1
JOBS 2007 1
</pre>
SELECT COUNT(*) FROM (
SELECT tag AS Category, YEAR(created) AS Year,
COUNT(*) AS Counts FROM ggl_links GROUP BY tag,
YEAR(created) ) groups
GO
7
Download MS SQL Server Interview Questions And Answers
PDF
Previous Question | Next Question |
How To Use Subqueries in the FROM Clause in MS SQL Server? | How To Return the Top 5 Rows from a SELECT Query in MS SQL Server? |