MS SQL Server Concepts and Programming Question:

Download Job Interview Questions and Answers PDF

How To Divide Query Output into Multiple Groups with the GROUP BY Clause in MS SQL Server?

MS SQL Server Interview Question
MS SQL Server Interview Question

Answer:

Sometimes, you want to divide the query output into multiple groups, and apply group functions on each individual groups. Dividing query output into multiple groups can be done with the GROUP BY clause. Here is the syntax of a SELECT statement with a GROUP BY clause.

SELECT group_level_fields FROM source_tables
WHERE search_condition
GROUP BY group_by_expression

* group_by_express - An list of columns to be used as the group criteria - Rows that have the same combination of values of there columns form a single group.
* group_level_fields - An list of selection expressions that can be evaluated at the group level.

The final output of the SELECT statement is the resulting values of group_level_fields for each group. The following script gives you a good GROUP BY example with a single column as the group_by_expression. In this case, rows with the same value of this column will be considered as a single group.

SELECT tag, COUNT(*), MAX(counts), MIN(created)
FROM ggl_links GROUP BY tag
GO<pre>
tag COUNT(*) MAX(counts) MIN(created)
DBA 3 972 2005-01-01
DEV 2 439 2004-01-01
SQA 2 828 2003-01-01</pre>
Notice that, column "tag" can also be used in group_level_fields, because it is used as the group_by_expression, and becomes a constant for any given group.

Download MS SQL Server Interview Questions And Answers PDF

Previous QuestionNext Question
Can Group Functions Be Mixed with Non-group Selection Fields in MS SQL Server?How To Apply Filtering Criteria at Group Level with The HAVING Clause in MS SQL Server?