---
title: "What is the Use of group by and Having Clause"  
description: "What is the Use of group by and Having Clause"  
author: "Manish Kumar"  
published: 2017-01-18  
updated: 2020-09-23  
canonical: https://www.mindstick.com/interview/23189/what-is-the-use-of-group-by-and-having-clause  
category: "database"  
tags: ["database", "sql"]  
reading_time: 3 minutes  

---

# What is the Use of group by and Having Clause

We use group by for grouping the records of table. For using group by clause we use at least one aggregate function in select statement. We can use group by clause without where clause.

**For Understanding this we take an example**

We take a table name it Emp_Info and insert following Records

\

![What is the Use of group by and Having Clause](data:image/png;base64,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)\

\

## 1.Using group by with where clause

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info where Emp_Name='A' group by Emp_Name
```

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAA5CAIAAABBFaUAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA8VJREFUeF7tmsFq4zAQhv1QbQ95l1ByyYMUCj3mKQpls6eFPEMPhZ6Xngt7KSz7Au2MNZLHkkdWrMSNZ+fDpKORNNL49yitafN5Mfw2qrkgOY16mh8/f9ml5hqpzvf3d7I0oi87k1MVJqcqTE5VHC/n227V9NgeqGciGHC1e6MWNlnrrKTZHbaUVMdR6eU3z27dcNTq3CfJedrb7ZIMMU8eX0auTpBVljGzw9zmIabvw5SH4lfnfhlyrna7cP9OHl9mVjlL8qrO/RRyome7bc+R1e7gDhQcwvy5M8sFDGG9wc89nCyt4qZgq3MUUipnFx+cviFuUtoCTow6pemZ3MO+YEy6VP135/YQ9skN+BmarsfvI8YNDrfQNzuiaNzAn2wCM0sokxPXcw2yBldxzpENYICWZJA0Pfi73N1e+A47TlWdrScy+Eiwh5ZHumGHLZ+FUzyRnxt8GOL6iiiSMywX7MhD6/Y3mSdUljRdDks7G1ZzTjmjWQHWhSYcKtgMGSfRIgM+pQdljGo55U2O4OJL07Nh26ntg+/aPc4sp78pzEwIsxDYrCswl7D3uWg8eGew2MwsoUhOFpQsWheQN5nQ25obLE7PhwWXeAbVf3c2vp7aLm7g54oGC8sjvb224dsmGgGKNrQKTmozpHHYLqRMTraV3nI4QNzkEGGX4fcZaXo+LMSRFjleznKyuV0CVdl9G/1Hrc/McrIHlBB3NgNnk/NsabaBMzVyTjkvHn3ZmZyqMDlV0fwdAw5rxZ/KGKlOGPHn45/WCxSlPLUwLifkHN0FNRdkR3lqwapTFVadqqirzqdN09zcvST+hVyZ6uxeBPgXAMET3ghkxnzX25Gq6ny8bda3m6v718i/lEuqTnxlSnp4E4SilzFgtX3dOy9vpZ7ZqanO17vrzePHfn398Bx3LeOCJ5XylEmU8Q4vK0Bm6pmdiup8ebi63beiLvW8laqTAeL1hfEOLrOzU4+z52R6dT7f36yfyFjoeTtanagdkwWb/msxFS/1OHtOJlcnFCX0eJZ53uarE8Ub0ATdoGgqXupx9pxMrU46aV1zqectPIeUZwKKJghCUmn67owO2IWet2J1ghp9OVBdcnizK0BvpZ7ZmVad+3X05yYUawO/5TLPEi6pOlFNhlMmOINQ3TBWlMS31GbFd6eGS6zOxTKtOpVc8KRSnlqw6lSFVacqrDpVUfQPFqCo4k9NaDtt/nNMTlWYnKowOVVhcqrC5FSFyakKk1MVJqcqTE5VmJyqMDlVYXKqwuRUhcmpCpNTEZ+fX80x8pcQ7/BtAAAAAElFTkSuQmCC)\

Here we have used where clause it returns the record of Emp_Name A.

\
**2. Without using where clause**

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info  group by Emp_Name
```

\

\

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAA5CAIAAABBFaUAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA8VJREFUeF7tmsFq4zAQhv1QbQ95l1ByyYMUCj3mKQpls6eFPEMPhZ6Xngt7KSz7Au2MNZLHkkdWrMSNZ+fDpKORNNL49yitafN5Mfw2qrkgOY16mh8/f9ml5hqpzvf3d7I0oi87k1MVJqcqTE5VHC/n227V9NgeqGciGHC1e6MWNlnrrKTZHbaUVMdR6eU3z27dcNTq3CfJedrb7ZIMMU8eX0auTpBVljGzw9zmIabvw5SH4lfnfhlyrna7cP9OHl9mVjlL8qrO/RRyome7bc+R1e7gDhQcwvy5M8sFDGG9wc89nCyt4qZgq3MUUipnFx+cviFuUtoCTow6pemZ3MO+YEy6VP135/YQ9skN+BmarsfvI8YNDrfQNzuiaNzAn2wCM0sokxPXcw2yBldxzpENYICWZJA0Pfi73N1e+A47TlWdrScy+Eiwh5ZHumGHLZ+FUzyRnxt8GOL6iiiSMywX7MhD6/Y3mSdUljRdDks7G1ZzTjmjWQHWhSYcKtgMGSfRIgM+pQdljGo55U2O4OJL07Nh26ntg+/aPc4sp78pzEwIsxDYrCswl7D3uWg8eGew2MwsoUhOFpQsWheQN5nQ25obLE7PhwWXeAbVf3c2vp7aLm7g54oGC8sjvb224dsmGgGKNrQKTmozpHHYLqRMTraV3nI4QNzkEGGX4fcZaXo+LMSRFjleznKyuV0CVdl9G/1Hrc/McrIHlBB3NgNnk/NsabaBMzVyTjkvHn3ZmZyqMDlV0fwdAw5rxZ/KGKlOGPHn45/WCxSlPLUwLifkHN0FNRdkR3lqwapTFVadqqirzqdN09zcvST+hVyZ6uxeBPgXAMET3ghkxnzX25Gq6ny8bda3m6v718i/lEuqTnxlSnp4E4SilzFgtX3dOy9vpZ7ZqanO17vrzePHfn398Bx3LeOCJ5XylEmU8Q4vK0Bm6pmdiup8ebi63beiLvW8laqTAeL1hfEOLrOzU4+z52R6dT7f36yfyFjoeTtanagdkwWb/msxFS/1OHtOJlcnFCX0eJZ53uarE8Ub0ATdoGgqXupx9pxMrU46aV1zqectPIeUZwKKJghCUmn67owO2IWet2J1ghp9OVBdcnizK0BvpZ7ZmVad+3X05yYUawO/5TLPEi6pOlFNhlMmOINQ3TBWlMS31GbFd6eGS6zOxTKtOpVc8KRSnlqw6lSFVacqrDpVUfQPFqCo4k9NaDtt/nNMTlWYnKowOVVhcqrC5FSFyakKk1MVJqcqTE5VmJyqMDlVYXKqwuRUhcmpCpNTEZ+fX80x8pcQ7/BtAAAAAElFTkSuQmCC)\

\

\

In the above sql query I have not used the where clause .when we execute above query it return all the Emp_Name with total salary.

\
**Having clause-**

It is use for filtering records from the table it work like where clause. It filter records from the data that we get from group by clause

\
It places the condition on group. So for using having clause we have to use group by clause first.

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info  group by Emp_Name having sum(salary)<2300
```

\

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAABICAIAAADgc1kmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA+tJREFUeF7tmk1u2zAQhX2opgvfJYtufJCssvQpChRtVgV8hi4C9ABZG+gmQNELuEPykRqJIkX/UJaY94FwRiNyNEM+TYy0mxMhls33l58cHDKKusLxeITVIm1Xp8lXSilQCoBSoBQApUApgEul8LbfbnrsDrhzISbgdv+GK3OprqoSV3fYoaiOs8rLJ6+2bjxqtdqrSeG26boNCjGrbUdMeoNEEmkJZDLMJS8x/T1T8lj8arWvRwrb/T7sfbXtiJlVCiV1Vat9LikYz25ne992f3BN0ExR/lyfdQFDWG/oXm0Wp57ilpirzlFIqRS6+OL0F8kkUymYhYObqeWZ2kNeMqe82mpSsCl5dodQozbkZ7h0d3wNQ9zksP3+smMQTRvmp1qgzBLKpGCe5y5gjT7FOScSMAEs0aTU8uDvane56AynqSaF0XRjQ88UO5V6N+2w06vMEs/Arw09zeDuFVEkhfC4YA88eG4/yTzhjU4tT4dFZucpYWlSGKwKqFvGlEZoLsNuRdEGhnyetSuKq6WQTnICFz+1PBvWLrUvjbsuYgFS8BuqzIiwyiCFuhfbbZb3uWg6eGeo2MosoUgKKigsPFdIJxnRS81NTi7PhxXXWb3PUE0Ktm8F/Htsb2nDfG4xOZN6r04b3l4aI4BoY08xi+zuYJ65LqRMCiqV3uPMhGSSY4Qsw3e/1PJ8WImTfsg4daRQTnZflsBV1d2NvkzLWKAU1IsBzq7qhlSTQrUybeAL3q97S2HxtF2dhlKYgFJwUAqUAtj8LUN+OTX8+UHAmSco6goS5c/7v1aHqAF1Ns3NpCD7NdjBZsbkHrUBu8L0YFdwsCuwK4DrusLr8yfRCPj89BpNWMOQ1FFnRPdHIv/Hocs8S6ByVzBS+PI12A/Pv8Kt9YzUHpl/AsBZwow96m+p3oo9y2CGruCl8P7jsbPXNETlqDNNfKrwSAfwrz7M2LMM2BWmx+Qe2XMfHCo8WiLOjj3OvjszdIVAg98VHObY+0caPPHBxx5n350Zu8Jqf0Hk9yicekB74oOPPc6+OzN0hXD8v58eVtkYMl1Bn7pj6OF3BYzBd4XGuoKc5OAoY0/34nsr9iyDGbpCx+O3aMIahmSOOvuYc1fIqcae3jTVDMByekL1rtDEmNyjNqjcFZoYonLU2TTsCtODXcHBrsCuANgV2BXAGf+dS9TQ8Gfz4MDTfIjeSEqgFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFIjldPoPXmm0kKgfG2oAAAAASUVORK5CYII=)\

\

Having clause solves the drawback of where clause because where clause does not support aggregate function

## Answers

### Answer by Manish Kumar

We use group by for grouping the records of table. For using group by clause we use at least one aggregate function in select statement. We can use group by clause without where clause.

**For Understanding this we take an example**

We take a table name it Emp_Info and insert following Records

\

![What is the Use of group by and Having Clause](data:image/png;base64,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)\

\

## 1.Using group by with where clause

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info where Emp_Name='A' group by Emp_Name
```

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAA5CAIAAABBFaUAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA8VJREFUeF7tmsFq4zAQhv1QbQ95l1ByyYMUCj3mKQpls6eFPEMPhZ6Xngt7KSz7Au2MNZLHkkdWrMSNZ+fDpKORNNL49yitafN5Mfw2qrkgOY16mh8/f9ml5hqpzvf3d7I0oi87k1MVJqcqTE5VHC/n227V9NgeqGciGHC1e6MWNlnrrKTZHbaUVMdR6eU3z27dcNTq3CfJedrb7ZIMMU8eX0auTpBVljGzw9zmIabvw5SH4lfnfhlyrna7cP9OHl9mVjlL8qrO/RRyome7bc+R1e7gDhQcwvy5M8sFDGG9wc89nCyt4qZgq3MUUipnFx+cviFuUtoCTow6pemZ3MO+YEy6VP135/YQ9skN+BmarsfvI8YNDrfQNzuiaNzAn2wCM0sokxPXcw2yBldxzpENYICWZJA0Pfi73N1e+A47TlWdrScy+Eiwh5ZHumGHLZ+FUzyRnxt8GOL6iiiSMywX7MhD6/Y3mSdUljRdDks7G1ZzTjmjWQHWhSYcKtgMGSfRIgM+pQdljGo55U2O4OJL07Nh26ntg+/aPc4sp78pzEwIsxDYrCswl7D3uWg8eGew2MwsoUhOFpQsWheQN5nQ25obLE7PhwWXeAbVf3c2vp7aLm7g54oGC8sjvb224dsmGgGKNrQKTmozpHHYLqRMTraV3nI4QNzkEGGX4fcZaXo+LMSRFjleznKyuV0CVdl9G/1Hrc/McrIHlBB3NgNnk/NsabaBMzVyTjkvHn3ZmZyqMDlV0fwdAw5rxZ/KGKlOGPHn45/WCxSlPLUwLifkHN0FNRdkR3lqwapTFVadqqirzqdN09zcvST+hVyZ6uxeBPgXAMET3ghkxnzX25Gq6ny8bda3m6v718i/lEuqTnxlSnp4E4SilzFgtX3dOy9vpZ7ZqanO17vrzePHfn398Bx3LeOCJ5XylEmU8Q4vK0Bm6pmdiup8ebi63beiLvW8laqTAeL1hfEOLrOzU4+z52R6dT7f36yfyFjoeTtanagdkwWb/msxFS/1OHtOJlcnFCX0eJZ53uarE8Ub0ATdoGgqXupx9pxMrU46aV1zqectPIeUZwKKJghCUmn67owO2IWet2J1ghp9OVBdcnizK0BvpZ7ZmVad+3X05yYUawO/5TLPEi6pOlFNhlMmOINQ3TBWlMS31GbFd6eGS6zOxTKtOpVc8KRSnlqw6lSFVacqrDpVUfQPFqCo4k9NaDtt/nNMTlWYnKowOVVhcqrC5FSFyakKk1MVJqcqTE5VmJyqMDlVYXKqwuRUhcmpCpNTEZ+fX80x8pcQ7/BtAAAAAElFTkSuQmCC)\

Here we have used where clause it returns the record of Emp_Name A.

\
**2. Without using where clause**

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info  group by Emp_Name
```

\

\

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAA5CAIAAABBFaUAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA8VJREFUeF7tmsFq4zAQhv1QbQ95l1ByyYMUCj3mKQpls6eFPEMPhZ6Xngt7KSz7Au2MNZLHkkdWrMSNZ+fDpKORNNL49yitafN5Mfw2qrkgOY16mh8/f9ml5hqpzvf3d7I0oi87k1MVJqcqTE5VHC/n227V9NgeqGciGHC1e6MWNlnrrKTZHbaUVMdR6eU3z27dcNTq3CfJedrb7ZIMMU8eX0auTpBVljGzw9zmIabvw5SH4lfnfhlyrna7cP9OHl9mVjlL8qrO/RRyome7bc+R1e7gDhQcwvy5M8sFDGG9wc89nCyt4qZgq3MUUipnFx+cviFuUtoCTow6pemZ3MO+YEy6VP135/YQ9skN+BmarsfvI8YNDrfQNzuiaNzAn2wCM0sokxPXcw2yBldxzpENYICWZJA0Pfi73N1e+A47TlWdrScy+Eiwh5ZHumGHLZ+FUzyRnxt8GOL6iiiSMywX7MhD6/Y3mSdUljRdDks7G1ZzTjmjWQHWhSYcKtgMGSfRIgM+pQdljGo55U2O4OJL07Nh26ntg+/aPc4sp78pzEwIsxDYrCswl7D3uWg8eGew2MwsoUhOFpQsWheQN5nQ25obLE7PhwWXeAbVf3c2vp7aLm7g54oGC8sjvb224dsmGgGKNrQKTmozpHHYLqRMTraV3nI4QNzkEGGX4fcZaXo+LMSRFjleznKyuV0CVdl9G/1Hrc/McrIHlBB3NgNnk/NsabaBMzVyTjkvHn3ZmZyqMDlV0fwdAw5rxZ/KGKlOGPHn45/WCxSlPLUwLifkHN0FNRdkR3lqwapTFVadqqirzqdN09zcvST+hVyZ6uxeBPgXAMET3ghkxnzX25Gq6ny8bda3m6v718i/lEuqTnxlSnp4E4SilzFgtX3dOy9vpZ7ZqanO17vrzePHfn398Bx3LeOCJ5XylEmU8Q4vK0Bm6pmdiup8ebi63beiLvW8laqTAeL1hfEOLrOzU4+z52R6dT7f36yfyFjoeTtanagdkwWb/msxFS/1OHtOJlcnFCX0eJZ53uarE8Ub0ATdoGgqXupx9pxMrU46aV1zqectPIeUZwKKJghCUmn67owO2IWet2J1ghp9OVBdcnizK0BvpZ7ZmVad+3X05yYUawO/5TLPEi6pOlFNhlMmOINQ3TBWlMS31GbFd6eGS6zOxTKtOpVc8KRSnlqw6lSFVacqrDpVUfQPFqCo4k9NaDtt/nNMTlWYnKowOVVhcqrC5FSFyakKk1MVJqcqTE5VmJyqMDlVYXKqwuRUhcmpCpNTEZ+fX80x8pcQ7/BtAAAAAElFTkSuQmCC)\

\

\

In the above sql query I have not used the where clause .when we execute above query it return all the Emp_Name with total salary.

\
**Having clause-**

It is use for filtering records from the table it work like where clause. It filter records from the data that we get from group by clause

\
It places the condition on group. So for using having clause we have to use group by clause first.

```
select Emp_Name,sum(salary) as Total_Salary from Test.dbo.Emp_Info  group by Emp_Name having sum(salary)<2300
```

\

![What is the Use of group by and Having Clause](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAK4AAABICAIAAADgc1kmAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwwAADsMBx2+oZAAAA+tJREFUeF7tmk1u2zAQhX2opgvfJYtufJCssvQpChRtVgV8hi4C9ABZG+gmQNELuEPykRqJIkX/UJaY94FwRiNyNEM+TYy0mxMhls33l58cHDKKusLxeITVIm1Xp8lXSilQCoBSoBQApUApgEul8LbfbnrsDrhzISbgdv+GK3OprqoSV3fYoaiOs8rLJ6+2bjxqtdqrSeG26boNCjGrbUdMeoNEEmkJZDLMJS8x/T1T8lj8arWvRwrb/T7sfbXtiJlVCiV1Vat9LikYz25ne992f3BN0ExR/lyfdQFDWG/oXm0Wp57ilpirzlFIqRS6+OL0F8kkUymYhYObqeWZ2kNeMqe82mpSsCl5dodQozbkZ7h0d3wNQ9zksP3+smMQTRvmp1qgzBLKpGCe5y5gjT7FOScSMAEs0aTU8uDvane56AynqSaF0XRjQ88UO5V6N+2w06vMEs/Arw09zeDuFVEkhfC4YA88eG4/yTzhjU4tT4dFZucpYWlSGKwKqFvGlEZoLsNuRdEGhnyetSuKq6WQTnICFz+1PBvWLrUvjbsuYgFS8BuqzIiwyiCFuhfbbZb3uWg6eGeo2MosoUgKKigsPFdIJxnRS81NTi7PhxXXWb3PUE0Ktm8F/Htsb2nDfG4xOZN6r04b3l4aI4BoY08xi+zuYJ65LqRMCiqV3uPMhGSSY4Qsw3e/1PJ8WImTfsg4daRQTnZflsBV1d2NvkzLWKAU1IsBzq7qhlSTQrUybeAL3q97S2HxtF2dhlKYgFJwUAqUAtj8LUN+OTX8+UHAmSco6goS5c/7v1aHqAF1Ns3NpCD7NdjBZsbkHrUBu8L0YFdwsCuwK4DrusLr8yfRCPj89BpNWMOQ1FFnRPdHIv/Hocs8S6ByVzBS+PI12A/Pv8Kt9YzUHpl/AsBZwow96m+p3oo9y2CGruCl8P7jsbPXNETlqDNNfKrwSAfwrz7M2LMM2BWmx+Qe2XMfHCo8WiLOjj3OvjszdIVAg98VHObY+0caPPHBxx5n350Zu8Jqf0Hk9yicekB74oOPPc6+OzN0hXD8v58eVtkYMl1Bn7pj6OF3BYzBd4XGuoKc5OAoY0/34nsr9iyDGbpCx+O3aMIahmSOOvuYc1fIqcae3jTVDMByekL1rtDEmNyjNqjcFZoYonLU2TTsCtODXcHBrsCuANgV2BXAGf+dS9TQ8Gfz4MDTfIjeSEqgFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFAigFIjldPoPXmm0kKgfG2oAAAAASUVORK5CYII=)\

\

Having clause solves the drawback of where clause because where clause does not support aggregate function


---

Original Source: https://www.mindstick.com/interview/23189/what-is-the-use-of-group-by-and-having-clause

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
