w3resource logo


>Sql Count with group by

SQL COUNT() with GROUP by

Secondary Nav

Count with group by

The use of COUNT() function in conjunction with GROUP BY is useful for characterizing our data under various groupings. A combination of same values (on a column) will be treated as an individual group.

Example :

To get data of 'working_area' and number of agents for this 'working_area' from the 'agents' table with following condition -

1. 'working_area' should come uniquely,

the following SQL statement can be used :

SELECT working_area, COUNT(*) 
FROM agents 
GROUP BY working_area;

Sample table : agents

Output

WORKING_AREA                          COUNT(*)
----------------------------------- ----------
San Jose                                     1
Torento                                      1
London                                       2
Hampshair                                    1
New York                                     1
Brisban                                      1
Bangalore                                    3
Chennai                                      1
Mumbai                                       1

Pictorial Presentation :

SQL COUNT with GROUP BY

SQL count( ) with group by and order by

In this page we are going to discuss the usage of GROUP BY and ORDER BY along with the SQL COUNT() function.

The GROUP BY makes the result set in a summary rows by the value of one or more columns. Each same value on the specific column will be treated as an individual group.

The utility of ORDER BY clause is, to arrange the value of a column ascending or descending, whatever it may the column type is numeric or character. The serial number of the column in the column list in select statement can be used to indicate which columns have to be arranged in ascending or descending order.

The default order is ascending if not any keyword or mention ASCE is mentioned. DESC is mentioned to set it in descending order.

Example :

Sample table : agents

To get data of 'working_area' and number of agents for this 'working_area' from the 'agents' table with following conditions -

1. 'working_area' should come uniquely,

2. counting for each group should come in ascending order,

the following SQL statement can be used :

SELECT working_area, COUNT(*) 
FROM agents 
GROUP BY working_area 
ORDER BY 2 ;

Output :

WORKING_AREA                          COUNT(*)
----------------------------------- ----------
San Jose                                     1
Torento                                      1
New York                                     1
Chennai                                      1
Hampshair                                    1
Mumbai                                       1
Brisban                                      1
London                                       2
Bangalore                                    3

SQL count( ) group by and order by in descending

To get data of 'working_area' and number of agents for this 'working_area' from the 'agents' table with following conditions -

1. ' working_area' should come uniquely,

2. counting for each group should come in descending order,

the following SQL statement can be used :

SELECT working_area, COUNT(*) 
FROM agents 
GROUP BY working_area 
ORDER BY 2 DESC;

Output :

WORKING_AREA                          COUNT(*)
----------------------------------- ----------
Bangalore                                    3
London                                       2
Hampshair                                    1
Mumbai                                       1
Brisban                                      1
Chennai                                      1
Torento                                      1
San Jose                                     1
New York                                     1

Note: Outputs of the said SQL statement shown here is taken by using Oracle Database 10g Express Edition.

Here is a slide presentation of all aggregate functions.



Is this content useful for you?