Union operators, intersection, exception, grouping sets. Lecture 8 презентация

Содержание

Слайд 2

The UNION operator combines result sets of two or more

The UNION operator combines result sets of two or more SELECT

statements into a single result set.
Removes all duplicate rows.
Both queries must return same number of rows.
The corresponding columns in the queries must have compatible data types.

UNION OPERATOR

Слайд 3

THE FOLLOWING VENN DIAGRAM ILLUSTRATES HOW THE UNION WORKS: SELECT

THE FOLLOWING VENN DIAGRAM ILLUSTRATES HOW THE UNION WORKS:

SELECT column1, column2
FROM

table1
UNION
SELECT column1, column2
FROM table2;

SYNTAX:

Слайд 4

The UNION operator combines result sets of two or more

The UNION operator combines result sets of two or more SELECT

statements into a single result set.
Does not remove duplicate rows.
Both queries must return same number of rows.
The corresponding columns in the queries must have compatible data types.

UNION ALL OPERATOR

Слайд 5

SYNTAX: SELECT select_list_1 FROM table1 UNION ALL SELECT select_list_2 FROM table2

SYNTAX:

SELECT select_list_1
FROM table1
UNION ALL
SELECT select_list_2
FROM table2

Слайд 6

UNION AND UNION ALL EXAMPLES output: output: UNION produces 276

UNION AND UNION ALL EXAMPLES

output:

output:

UNION produces
276 rows, while UNION ALL gives

278.
It means, we have duplications in full names of instructors and students.
Слайд 7

INTERSECT OPERATOR Used to combine result set of two or

INTERSECT OPERATOR

Used to combine result set of two or more SELECT

statement into a single result.
The INTERSECT operator returns all rows in both result sets.
The number of columns that appear in the SELECT statement must be the same.
Data types of the columns must be compatible.
Слайд 8

THE FOLLOWING ILLUSTRATION SHOWS THE FINAL RESULT SET PRODUCED BY

THE FOLLOWING ILLUSTRATION SHOWS THE FINAL RESULT SET PRODUCED BY THE

INTERSECT OPERATOR:

SELECT select_list FROM table1 INTERSECT
SELECT select_list
FROM table2;

SYNTAX:

Слайд 9

EXCEPT OPERATOR Returns rows by comparing the result sets of

EXCEPT OPERATOR

Returns rows by comparing the result sets of two or

more queries.
Returns rows in first query not present in output of the second query.
Returns distinct rows from the first (left) query not in output of the second (right) query.
The number of columns and their order must be the same in both queries.
The data types of the respective columns must be compatible.
Слайд 10

THE FOLLOWING VENN DIAGRAM ILLUSTRATES THE EXCEPT OPERATOR: SELECT select_list

THE FOLLOWING VENN DIAGRAM ILLUSTRATES THE EXCEPT OPERATOR:

SELECT select_list
FROM table1
EXCEPT
SELECT select_list
FROM

table2;
Слайд 11

POSTGRESQL: GROUPING SETS A grouping set is a set of

POSTGRESQL: GROUPING SETS

A grouping set is a set of columns by

which you group by using the GROUP BY clause.
A grouping set is denoted by a comma-separated list of columns placed inside parentheses:
(column1, column2, ...)
Слайд 12

GROUPING SETS PostgreSQL provides the GROUPING SETS clause which is

GROUPING SETS

PostgreSQL provides the GROUPING SETS clause which is the subclause

of the GROUP BY clause.
The GROUPING SETS allows you to define multiple grouping sets in the same query.
Слайд 13

SYNTAX: SELECT c1, c2, aggregate_function(c3) FROM table_name GROUP BY GROUPING

SYNTAX:

SELECT c1, c2, aggregate_function(c3)
FROM table_name
GROUP BY
GROUPING SETS ( (c1, c2), (c1),

(c2), () );
Слайд 14

EXAMPLE output: Grouping sets is equivalent to UNION ALL operator. They both give the same output.

EXAMPLE

output:

Grouping sets is equivalent to UNION ALL operator.
They both give the

same output.
Слайд 15

GROUPING SETS: CUBE Grouping operations are possible with the concept

GROUPING SETS: CUBE

Grouping operations are possible with the concept of grouping

sets.
PostgreSQL CUBE is a subclause of the GROUP BY clause.
The CUBE allows you to generate multiple grouping sets.
Слайд 16

CUBE SYNTAX GROUPING SETS ( (c1,c2,c3), (c1,c2), (c1,c3), (c2,c3), (c1),

CUBE SYNTAX

GROUPING SETS ( (c1,c2,c3),
(c1,c2),
(c1,c3),
(c2,c3),
(c1),
(c2),
(c3),
() );

SELECT c1, c2, c3, aggregate (c4)
FROM

table_name
GROUP BY CUBE (c1, c2, c3);
Слайд 17

CUBE EXAMPLE output: output: Partial cube example:

CUBE EXAMPLE

output:

output:

Partial cube example:

Слайд 18

GROUPING SETS: ROLLUP PostgreSQL ROLLUP is a subclause of the

GROUPING SETS: ROLLUP

PostgreSQL ROLLUP is a subclause of the GROUP BY clause.
Different

from the CUBE subclause, ROLLUP does not generate all possible grouping sets based on the specified columns. It just makes a subset of those.
The ROLLUP assumes a hierarchy among the input columns and generates all grouping sets that make sense considering the hierarchy.
Слайд 19

CUBE VS ROLLUP CUBE sets: (c1, c2, c3) (c1, c2)

CUBE VS ROLLUP

CUBE sets:
(c1, c2, c3)
(c1, c2)
(c2, c3)
(c1,c3) (c1)
(c2)
(c3)
()

ROLLUP sets:
(c1, c2,

c3)
(c1, c2) (c1)
()

However, the ROLLUP(c1,c2,c3) generates only four grouping sets, assuming the

hierarchy c1 > c2 > c3 as follows:

Слайд 20

ROLLUP SYNTAX SELECT c1, c2, c3, aggregate(c4) FROM table_name GROUP BY ROLLUP (c1, c2, c3);

ROLLUP SYNTAX
SELECT c1, c2, c3, aggregate(c4) FROM table_name
GROUP BY ROLLUP (c1,

c2, c3);
Слайд 21

ROLLUP EXAMPLE output:

ROLLUP EXAMPLE

output:

Слайд 22

Слайд 23

Слайд 24

Слайд 25

Employee Person SELECT * FROM Employee INTERSECT SELECT * FROM Person;

Employee

Person

SELECT * FROM Employee
INTERSECT
SELECT * FROM Person;

Слайд 26

Employee Person SELECT first_name, last_name FROM Employee INTERSECT SELECT first_name, last_name FROM Person ORDER BY first_name;

Employee

Person

SELECT first_name, last_name FROM Employee
INTERSECT
SELECT first_name, last_name FROM Person
ORDER BY

first_name;
Слайд 27

Employee Person SELECT id, first_name, last_name FROM Employee INTERSECT SELECT first_name, last_name FROM Person

Employee

Person

SELECT id, first_name, last_name
FROM Employee
INTERSECT
SELECT first_name, last_name FROM Person

Слайд 28

Employee Person SELECT *FROM Employee EXCEPT SELECT * FROM Person;

Employee

Person

SELECT *FROM Employee
EXCEPT
SELECT * FROM Person;

Слайд 29

Employee Person SELECT * FROM Employee UNION SELECT * FROM Person;

Employee

Person

SELECT * FROM Employee
UNION
SELECT * FROM Person;

Слайд 30

Employee SELECT dept_id, SUM(salary) FROM employee GROUP BY dept_id;

Employee

SELECT dept_id, SUM(salary)
FROM employee
GROUP BY dept_id;

Слайд 31

Employee SELECT dept_id, gender, SUM(salary) FROM employee GROUP BY GROUPING

Employee

SELECT dept_id, gender, SUM(salary) FROM employee
GROUP BY
GROUPING SETS (
(dept_id, gender),
(dept_id),
(gender),
()
);

Слайд 32

Employee SELECT dept_id, gender, SUM(salary) FROM employee GROUP BY CUBE(dept_id, gender);

Employee

SELECT dept_id, gender, SUM(salary)
FROM employee
GROUP BY
CUBE(dept_id, gender);

Слайд 33

Employee SELECT dept_id, gender, SUM(salary) FROM employee GROUP BY dept_id, CUBE(gender);

Employee

SELECT dept_id, gender, SUM(salary)
FROM employee
GROUP BY
dept_id,
CUBE(gender);

Слайд 34

Employee SELECT gender, dept_id, SUM(salary) FROM employee GROUP BY ROLLUP(gender,dept_id) ORDER BY gender, dept_id;

Employee

SELECT gender, dept_id, SUM(salary)
FROM employee
GROUP BY
ROLLUP(gender,dept_id)
ORDER BY gender, dept_id;

Имя файла: Union-operators,-intersection,-exception,-grouping-sets.-Lecture-8.pptx
Количество просмотров: 21
Количество скачиваний: 0