chapter seven (part 2) multiple row functions:
DESCRIPTION
Chapter Seven (part 2) Multiple Row Functions:. Objectives: -Multiple row functions -Ordering -Grouping -Concept of JOIN. Aggregate Functions:. MAX (DISTINCT | ALL) (value) MIN (DISTINCT | ALL) (value) AVG(DISTINCT | ALL) (value) SUM (DISTINCT | ALL) (value) - PowerPoint PPT PresentationTRANSCRIPT
1
Chapter Seven (part 2)
Multiple Row Functions:
Objectives:-Multiple row
functions-Ordering-Grouping-Concept of JOIN
2
Aggregate Functions:
MAX (DISTINCT | ALL) (value) MIN (DISTINCT | ALL) (value) AVG (DISTINCT | ALL) (value) SUM (DISTINCT | ALL) (value) COUNT (DISTINCT | ALL) (value)*
3
Aggregate Functions:
List the highest GPA
SELECT MAX (GPA)FROM Student;
4
Aggregate Functions:
List average, max, min, and total salary of cosc faculty
SELECT AVG(salary), MIN(salary), MAX(salary), SUM(salary)
FROM faculty WHERE dept = ‘COSC’;
5
Aggregate Functions:
List average salary of cosc faculty:
SELECT AVG( NVL(salary,0)),COUNT(*)
FROM faculty WHERE dept = ‘COSC’;
6
Practice:
Find Average, and sum of quoted price from order form. Also the number of orders.
7
Practice:
Find the highest quoted price from order form. Order number must be in this range :2000 to 3000.
8
Distinct:
SELECT DISTinct (dept)FROM Faculty;
9
Practice:
How many customers have an order on March, 10 2001?
10
Ordering ORDERING: (Default is Ascending ASC)
List students name in an alphabetic order
SELECT nameFROM studentORDER BY name;
ORDER BY Name , GPA DESC;
11
Ordering
List of the faculty salary for the next year with 5% increase order by new salary.
SELECT name,
salary pay, salary+salary*0.05 AS
new_salaryFROM facultyORDER BY new_salary;
12
Practice:
Find the list of customers: last name, first name, balance, credit line and birth date; order the data by birth date from older to younger and balance from lowest to highest.
13
Grouping
SELECTFROM[WHERE][GROUP BY][ORDER BY]
14
Grouping Average Salary of faculty members
by department
SELECT dept, AVG (Salary)FROM FacultyGROUP BY dept;
15
Grouping
List number of courses taken by each student
SELECT ID, COUNT(*)FROM Student_CourseGROUP BY ID;
16
Grouping by multiple attributes List total number of credits taken by
each studentSELECT ID, SUM(Cr)FROM Student_CourseGROUP BY ID;
SELECT ID, semester, SUM(Cr)FROM Student_CourseGROUP BY ID, semester;
SELECT dept, count(name)FROM facultyGROUP BY dept;
17
Practice:
List of customer last names and first names for each customer state.
18
Having
Condition on Group:
SELECTFROM[WHERE][GROUP BY][HAVING][ORDER BY]
19
Having
List ID of students who have more than 20 credits and majoring in COSC.
SELECT ID
FROM Student_CourseWHERE Major = 'COSC' GROUP BY IDHAVING SUM(Cr) > 20 ;
20
Having
SELECT dept, MAX(salary)FROM facultyGROUP BY deptHAVING MAX(salary)>50000;
21
Having
SELECT dept, MAX(salary)FROM facultyGROUP BY deptHAVINGMAX(salary)>50000ORDER BY MAX(salary);
22
Having
SELECT dept, AVG(MAX(salary)-MIN(salary))FROM facultyGROUP BY dept;
23
Illegal Queries: SELECT name, count(*)
FROM department;
SELECT name, count(*) FROM department GROUP BY name; SELECT name, AVG(salary) FROM department WHERE AVG(salary) >5000;
SELECT name, AVG(salary) FROM department GROUP BY name HAVING AVG(salary) >5000;
24
Practice:
List each SalesRepNumber with their total customer’s balance.
25
Practice:
List each SalesRepNumber with their total customer’s balance, only for customers with balance of $1000 or more.
26
Practice:
List each SalesRepNumber with their total customer’s balance, only if the total SalesRepNumber balance is less than $100,000, for customers with balance of $1000 or more.
27
JOIN: Definition General Format:
SELECT col1,col2,….FROM table1, table2,…WHERE conditions;
28
JOIN: List of student’s name with the grade
= 'A' SELECT Name
FROM Student_Course, StudentWHERE Student.ID =
Student_Course.ID and Grade =‘A’;
29
JOIN: Aliases: FROM Student a, Student b WHERE a.ID > b.ID
30
CARTESIAN PRODUCT:
Join condition is omitted Join condition is invalid All rows in table one are joined to all
rows in table two
SELECT *FROM Student, faculty;
31
JOIN Equijoin:
SELECT NameFROM Student_Course, StudentWHERE Student.ID = Student_Course.ID ;
SELECT department.num_faculty,faculty.name
FROM department, facultyWHERE department.name=faculty.dept;
32
Practice:
Find the list of customers: Last name, first name, balance and the city where their sales person lives.
33
JOIN Non-Equijoin:
Faculty (name, salary)Status (rank, low_salry, high_salary)
Get the name, salary and rank of faculty members
SELECT name, salary, rankFROM faculty, statusWHERE salary BETWEEN low_salary AND high_salary;
34
Practice:
Find the list of customers: Last name, first name, who did not ordered some items in year 2004;
Assume there is a table called customer_order with attributes: c_number, o_number
35
JOIN
Self Join
SELECT a.NameFROM Student a, Student bWHERE a.ID > b.ID AND
b.Name = ‘SMITH';
What is the output of this query
36
JOIN Self Join List of Faculty member with salary
higher than salary of Mary and less than salary of John
SELECT a.NameFROMFaculty a, Faculty b, Faculty cWHERE a.Salary > b.Salary AND
a.Salary < c.Salary ANDb.Name = 'MARY' ANDc.Name = ‘JOHN’;
37
Practice:
Find the list of customers: Last name, first name, who are reside in the same city as Ms joy Smith