GROUP BY clause in sql server

SQL Server group by  clause is an essential part of when you are working with SQL. It’s a part of the SQL training also. Here we are going to describe the processes of how to do it with help of Group by SQL Command.



GROUP BY Clause(Group by Clause in Oracle,Group by Clause in MySQL,Group by Statement in SQL)

The SQL Group BY Clause is utilized to output a row across specified column values. It’s generally utilized in conjunction with combined functions like add or Count to summarize values. In SQL teams are distinctive combinations of fields. Instead of returning each row in a table, once values are sorted, only the distinctive combinations are returned.

The group BY Clause is more to the SQL Statement once after the WHERE Clause.There are some of things to notice. First, the columns we would like to summarize are listed, separated by commas, within the group BY clause. Second, this same list of columns should be listed within the chosen statement; otherwise the statement fails.

When this statement is run, not each filtered row is returned. But still there is a big difference, The DISTINCT modifier end at outputting single combination of rows, but with the group BY statement, we can calculate values that are supported by the original filtered rows for every distinctive combination. COUNT is an example of a blend of perform, these are what gives the GROUP BY statement its special worth.


Aggregate Functions

Some functions, like SUM, are used to perform calculations on a bunch of rows; these are known as aggregate functions. In most cases these functions treat a group of values that are outlined using the group BY clause. Once there isn’t a group BY clause, it’s usually understood the aggregate perform applies to all filtered results.

Some of the foremost common combination functions include:

  • AVG(expression) Calculate the average of the expression.
  • COUNT(expression) Count occurrences of non-null values returned by the expression.
  • COUNT(*) Counts all rows within the specified table.
  • MIN(expression) Finds the minimum expression value.
  • MAX(expression) Finds the maximum expression worth.
  • SUM(expression) Calculate the total of the expression.

These functions can be used on their own on in combination with the GROUP BY clause. They operate across the entire table; but, when used with GROUP BY, their calculations are “reset” every time and the grouping changes. In this way they act as subtotals.


General Syntax of an Aggregate Function

While using the aggregate function you can calculate the result on all values or separate values.

Using Aggregate Functions with GROUP BY

In simple words, to aggregate is making whole from individual parts. Aggregate functions are those functions that work on more than one row to go back to a result.


The SUM function totals up the values that are returned; in the same way AVG calculates the average.

We can even type by the total to get the top orders first

In similar manner we can calculate the average order detail amount as it is calculated as the sum of the sample divided by the sample count, then use AVG.

Below are some important points to remember:

  1. An aggregate function can review an expression such as SUM(A + B)
  2. You should assume name the aggregate functions, so that the column names are significant.
  3. When working with aggregate functions and GROUP BY, IT is at times is easy to think about the details first, write a simple SELECT statement, check the results, then add in the consider stuff.

Example group by SQL query


Consider a table Result

Column name data type Allow null
RollNumber int no
Subject Char (10) no
Marks int no


RollNumber Subject Marks
1001 Physics 80
1001 Chemistry 75
1002 Physics 85
1002 Chemistry 60

To calculate sum of total marks

Select Rollnumber, SUM (Marks) from result group by RollNumber

1001 155
1002 135


To calculate average of Subject

Select Subject, AVG (Marks) from result group by Subject

Physics 82.5
Chemistry 67.5



The COUNT function is used when you want to know the number of records that exist in a table or within a group.  COUNT (*) will count each record in the grouping; while COUNT counts every record where expression’s result is not null.  You can also use Distinct with COUNT to look for the amount characteristic values within a group.

Select Count (*) from result

ANS =4;


Select subject ,count (subject) from result group by subject


Physics 2
Chemistry 2





Using MIN and MAX will enable you to find the smallest and largest values, within a table or group. You can also find the MIN or MAX value of a calculation.

Calculate minimum marks in respective subject

Select subject, MIN (Marks) from result group by subject


Physics 80
Chemistry 60


Calculate Maximum marks in respective subject

Select subject, MAX (Marks) from result group by subject


Physics 85
chemistry 75





Having group by Clause in SQL

The Having Clause in SQL is used to filter groups according to the outcome of the aggregate functions.  This makes it likely to solve problems like selecting all orders that have more than two orders detail lines.Group by clause with having mostly used to find duplicate records.

Having clause with MysQL example

Calculate duplicate employee Id

Select EmpId,count(*) Duplicate Record from Table group by EmpId having Count(*) > 1

group by clause

Here I will explain various group by clause syntax and example.See SQL queries interview questions and answers

2 thoughts on “GROUP BY clause in sql server”

  1. An impressive share! I have just forwarded this onto a
    colleague who had been doing a little research on this. And he actually ordered
    me dinner due to the fact that I stumbled upon it for him…
    lol. So allow me to reword this…. Thank YOU for the meal!!
    But yeah, thanx for spending time to talk about this matter here on your blog.

  2. I’m gone to convey my little brother, that he should
    also go to see this webpage on regular basis
    to obtain updated from newest gossip.


Leave a Comment