0% found this document useful (0 votes)
67 views29 pages

Lecture No 5: Using Group Functions

The document discusses using group functions in SQL. It describes group functions like AVG, COUNT, MAX, MIN, and SUM that operate on sets of rows to produce aggregate results. It provides examples of using these functions with the GROUP BY clause to group data and get aggregate results per group. It also discusses concepts like counting null and distinct values, and ignoring nulls in aggregates.

Uploaded by

lovely person
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views29 pages

Lecture No 5: Using Group Functions

The document discusses using group functions in SQL. It describes group functions like AVG, COUNT, MAX, MIN, and SUM that operate on sets of rows to produce aggregate results. It provides examples of using these functions with the GROUP BY clause to group data and get aggregate results per group. It also discusses concepts like counting null and distinct values, and ignoring nulls in aggregates.

Uploaded by

lovely person
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

National Institute of Electronics

Lecture No 4 at a Glance

In the last lecture we have covered following topics:

• Describe various types of functions available


in SQL

• Use character, number, and date functions in


SELECT statements

• Describe the use of conversion functions

1 Lecture No 5: Using Group Functions


Lecture 5
Using Group Functions
National Institute of Electronics

Objectives

After completing this lesson, you should be able to


do the following:
• Identify the available group functions

• Describe the use of group functions

• Group data using the GROUP BY clause

• Include or exclude grouped rows by using the


HAVING clause

3 Lecture No 5: Using Group Functions


National Institute of Electronics

What Are Group Functions?


Group functions operate on sets of rows to give one
result per group.
EMPLOYEES

The maximum
salary in
the EMPLOYEES
table.

4 Lecture No 5: Using Group Functions


National Institute of Electronics

Types of Group Functions

• AVG
• COUNT
• MAX
• MIN
• STDDEV
• SUM
• VARIANCE

5 Lecture No 5: Using Group Functions


National Institute of Electronics

Group Functions Syntax

SELECT [column,] group_function(column), ...


FROM table
[WHERE condition]
[GROUP BY column]
[ORDER BY column];

6 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the AVG and SUM Functions


You can use AVG and SUM for numeric data.

SELECT AVG(salary), MAX(salary),


MIN(salary), SUM(salary)
FROM employees;

7 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the MIN and MAX Functions

You can use MIN and MAX for any data type.
• Date Data Type

SELECT MIN(hire_date), MAX(hire_date)


FROM employees;

8 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the MIN and MAX Functions

• Character Data Type

SELECT MIN(first_name), MAX(first_name)


FROM employees;

9 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the MIN and MAX Functions

• Number Data Type

SELECT MIN(department_id), MAX(department_id)


FROM employees;

Example

10 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the COUNT Function

COUNT(*) returns the number of rows in a table.


SELECT COUNT(*)
FROM employees
WHERE department_id = 80;

Example

11 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the COUNT Function

• COUNT(expr) returns the number of rows with


non-null values for the expr.

• Display the number of department values in the


EMPLOYEES table, excluding the null values.

SELECT COUNT(commission_pct)
FROM employees
WHERE department_id = 80;

12 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the DISTINCT Keyword

• COUNT(DISTINCT expr) returns the number of


distinct non-null values of the expr.

• Display the number of distinct department values


in the EMPLOYEES table.
SELECT COUNT(DISTINCT department_id)
FROM employees;

13 Lecture No 5: Using Group Functions


National Institute of Electronics

Group Functions and Null Values

Group functions ignore null values in the column.

SELECT AVG(commission_pct)
FROM employees;

14 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the NVL Function


with Group Functions

The NVL function forces group functions to include


null values.
SELECT AVG(NVL(commission_pct, 0))
FROM employees;

15 Lecture No 5: Using Group Functions


National Institute of Electronics

Creating Groups of Data

EMPLOYEES
4400

9500
The
average
3500 salary
in
EMPLOYEES
6400 table
for each
10033
department.

16 Lecture No 5: Using Group Functions


National Institute of Electronics

Creating Groups of Data:


The GROUP BY Clause Syntax

SELECT column, group_function(column)


FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[ORDER BY column];

Divide rows in a table into smaller groups by using the


GROUP BY clause.

17 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the GROUP BY Clause


All columns in the SELECT list that are not in group
functions must be in the GROUP BY clause.
SELECT
SELECT department_id,
department_id, MIN(salary),
MIN(salary), MAX(salary),
MAX(salary), AVG(salary)
AVG(salary)
FROM
FROM employees
employees
GROUP
GROUP BY
BY department_id
department_id ;;

18 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the GROUP BY Clause


The GROUP BY column does not have to be in the
SELECT list.
SELECT AVG(salary)
FROM employees
GROUP BY department_id ;

19 Lecture No 5: Using Group Functions


National Institute of Electronics

EMPLOYEES Grouping by More Than One Column

“Add up the
salaries in
the EMPLOYEES
table
for each job,
grouped by
department.

20 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the GROUP BY Clause


on Multiple Columns
SELECT department_id dept_id, job_id, SUM(salary)
FROM employees
GROUP BY department_id, job_id ;

21 Lecture No 5: Using Group Functions


National Institute of Electronics

Illegal Queries
Using Group Functions

Any column or expression in the SELECT list that is


not an aggregate function must be in the GROUP BY
clause.

SELECT
SELECT department_id,
department_id, COUNT(last_name)
COUNT(last_name)
FROM
FROM employees;
employees;

SELECT
SELECT department_id,
department_id, COUNT(last_name)
COUNT(last_name)
**
ERROR
ERROR at
at line
line 1:
1:
ORA-00937:
ORA-00937: not
not aa single-group
single-group group
group function
function

Column
Column missing
missing in
in the
the GROUP BY clause
GROUP BY clause

22 Lecture No 5: Using Group Functions


National Institute of Electronics

Illegal Queries
Using Group Functions

• You cannot use the WHERE clause to restrict groups.


• You use the HAVING clause to restrict groups.
• You cannot use group functions in the WHERE clause.
SELECT
SELECT department_id,
department_id, AVG(salary)
AVG(salary)
FROM
FROM employees
employees
WHERE
WHERE AVG(salary)
AVG(salary) >> 8000
8000
GROUP
GROUP BY
BY department_id;
department_id;
WHERE
WHERE AVG(salary)
AVG(salary) >> 8000
8000
**
ERROR
ERROR at
at line
line 3:
3:
ORA-00934:
ORA-00934: group
group function
function is
is not
not allowed
allowed here
here

Cannot use the


Cannot use the WHERE clause to
WHERE clause restrict groups
to restrict groups

23 Lecture No 5: Using Group Functions


National Institute of Electronics

Excluding Group Results


EMPLOYEES

The maximum
salary
per department
when it is
greater than
$10,000

24 Lecture No 5: Using Group Functions


National Institute of Electronics

Excluding Group Results: The HAVING


Clause

Use the HAVING clause to restrict groups:


1. Rows are grouped.
2. The group function is applied.
3. Groups matching the HAVING clause are displayed.

SELECT column, group_function


FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];

25 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the HAVING Clause

SELECT department_id, MAX(salary)


FROM employees
GROUP BY department_id
HAVING MAX(salary)>10000 ;

26 Lecture No 5: Using Group Functions


National Institute of Electronics

Using the HAVING Clause

SELECT job_id, SUM(salary) PAYROLL


FROM employees
WHERE job_id NOT LIKE '%REP%'
GROUP BY job_id
HAVING SUM(salary) > 13000
ORDER BY SUM(salary);

27 Lecture No 5: Using Group Functions


National Institute of Electronics

Nesting Group Functions

Display the maximum average salary.

SELECT MAX(AVG(salary))
FROM employees
GROUP BY department_id;

28 Lecture No 5: Using Group Functions


National Institute of Electronics

Summary

In this lecture we have covered following topics:

• Identify the available group functions

• Describe the use of group functions

• Group data using the GROUP BY clause

• Include or exclude grouped rows by using the


HAVING clause

29 Lecture No 5: Using Group Functions

You might also like