SlideShare a Scribd company logo
1 of 36
Advanced Subqueries
Objectives ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What Is a Subquery? ,[object Object],[object Object],SELECT ...  FROM  ... WHERE  ... (SELECT ... FROM  ... WHERE  ...) Main query Subquery
Subqueries ,[object Object],[object Object],SELECT select_list FROM table WHERE expr operator  (SELECT  select_list   FROM   table );
Using a Subquery SELECT last_name FROM  employees WHERE  salary >  (SELECT salary FROM  employees WHERE  employee_id = 149) ; 10500
Multiple-Column Subqueries Main query WHERE (MANAGER_ID, DEPARTMENT_ID)  IN Subquery 100  90 102  60 124  50 Each row of the main query is compared to values from a multiple-row and multiple-column subquery.
Column Comparisons ,[object Object],[object Object],[object Object],[object Object]
Pairwise Comparison Subquery ,[object Object],SELECT employee_id, manager_id, department_id FROM employees WHERE  (manager_id, department_id) IN (SELECT manager_id, department_id FROM  employees WHERE  employee_id IN (178,174)) AND employee_id NOT IN (178,174);
Nonpairwise Comparison Subquery ,[object Object],SELECT  employee_id, manager_id, department_id FROM  employees WHERE  manager_id IN    (SELECT  manager_id FROM  employees WHERE  employee_id IN (174,141)) AND  department_id IN    (SELECT  department_id FROM  employees WHERE  employee_id IN (174,141)) AND employee_id NOT IN(174,141);
Using a Subquery  in the  FROM  Clause SELECT  a.last_name, a.salary,  a.department_id, b.salavg FROM  employees a, (SELECT  department_id,  AVG(salary) salavg FROM  employees GROUP BY department_id) b WHERE  a.department_id = b.department_id AND  a.salary > b.salavg;
Scalar Subquery Expressions ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Scalar Subqueries: Examples ,[object Object],SELECT employee_id, last_name, (CASE WHEN department_id = THEN 'Canada' ELSE 'USA' END) location FROM  employees; (SELECT department_id FROM departments WHERE location_id = 1800) Scalar Subqueries in  ORDER BY  Clause SELECT  employee_id, last_name FROM  employees e ORDER BY (SELECT department_name FROM departments d WHERE e.department_id = d.department_id); 20
Hidden Slide
Correlated Subqueries ,[object Object],[object Object],[object Object],GET candidate row from outer query EXECUTE inner query using candidate row value USE values from inner query to qualify or disqualify candidate row
Correlated Subqueries SELECT  column1 ,  column2 , ... FROM  table1 WHERE  column1  operator    (SELECT  colum1, column2 FROM  table2 WHERE  expr1  =  .expr2 ); ,[object Object],outer outer
Using Correlated Subqueries ,[object Object],SELECT last_name, salary, department_id FROM  employees outer WHERE  salary > Each time a row from  the outer query is processed, the inner query is evaluated. (SELECT AVG(salary) FROM  employees WHERE  department_id =  outer.department_id) ;
Using Correlated Subqueries SELECT e.employee_id, last_name,e.job_id FROM  employees e  WHERE  2 <= (SELECT COUNT(*) FROM  job_history  WHERE  employee_id = e.employee_id); Display details of those employees who have switched jobs at least twice.
Using the  EXISTS  Operator ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Using the  EXISTS  Operator ,[object Object],SELECT employee_id, last_name, job_id, department_id FROM  employees outer WHERE  EXISTS ( SELECT 'X' FROM  employees WHERE  manager_id =  outer.employee_id);
Using the  NOT EXISTS  Operator SELECT department_id, department_name FROM departments d WHERE NOT EXISTS (SELECT 'X' FROM  employees WHERE  department_id  = d.department_id); Find all departments that do not have any employees.
Correlated  UPDATE ,[object Object],UPDATE  table1 alias1 SET  column = (SELECT  expression FROM  table2 alias2 WHERE  alias1.column =  alias2.column );
Correlated  UPDATE ,[object Object],[object Object],ALTER TABLE employees ADD(department_name VARCHAR2(14)); UPDATE employees e SET  department_name =  (SELECT department_name    FROM  departments d   WHERE  e.department_id = d.department_id);
Hidden Slide
Correlated  DELETE DELETE FROM  table1 alias1 WHERE  column operator   (SELECT  expression   FROM  table2 alias2   WHERE  alias1.column = alias2.column); Use a correlated subquery to delete rows in one table based on rows from another table.
[object Object],Correlated  DELETE DELETE FROM employees E WHERE employee_id =  (SELECT employee_id FROM  emp_history  WHERE  employee_id = E.employee_id);
The  WITH  Clause ,[object Object],[object Object],[object Object]
WITH  Clause: Example ,[object Object]
WITH  Clause: Example WITH  dept_costs   AS ( SELECT  d.department_name, SUM(e.salary) AS dept_total FROM  employees e, departments d WHERE  e.department_id = d.department_id GROUP BY d.department_name), avg_cost   AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM  dept_costs ) SELECT *  FROM  dept_costs   WHERE  dept_total > (SELECT dept_avg  FROM  avg_cost ) ORDER BY department_name;
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object]
Summary ,[object Object],[object Object],[object Object],[object Object]
Practice 18 Overview ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Hidden Slide
Hidden Slide
Hidden Slide
Hidden Slide
Hidden Slide

More Related Content

What's hot

e computer notes - Advanced subqueries
e computer notes - Advanced subqueriese computer notes - Advanced subqueries
e computer notes - Advanced subqueries
ecomputernotes
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
Achmad Solichin
 
e computer notes - Manipulating data
e computer notes - Manipulating datae computer notes - Manipulating data
e computer notes - Manipulating data
ecomputernotes
 

What's hot (20)

Aggregate functions
Aggregate functionsAggregate functions
Aggregate functions
 
e computer notes - Advanced subqueries
e computer notes - Advanced subqueriese computer notes - Advanced subqueries
e computer notes - Advanced subqueries
 
Les03
Les03Les03
Les03
 
Les08
Les08Les08
Les08
 
Les02 (restricting and sorting data)
Les02 (restricting and sorting data)Les02 (restricting and sorting data)
Les02 (restricting and sorting data)
 
Les07
Les07Les07
Les07
 
PHP mysql Aggregate functions
PHP mysql Aggregate functionsPHP mysql Aggregate functions
PHP mysql Aggregate functions
 
Oracle SQL Functions
Oracle SQL FunctionsOracle SQL Functions
Oracle SQL Functions
 
Sql operators & functions 3
Sql operators & functions 3Sql operators & functions 3
Sql operators & functions 3
 
Introduction to Oracle Functions--(SQL)--Abhishek Sharma
Introduction to Oracle Functions--(SQL)--Abhishek SharmaIntroduction to Oracle Functions--(SQL)--Abhishek Sharma
Introduction to Oracle Functions--(SQL)--Abhishek Sharma
 
Les11
Les11Les11
Les11
 
Oracle - Program with PL/SQL - Lession 05
Oracle - Program with PL/SQL - Lession 05Oracle - Program with PL/SQL - Lession 05
Oracle - Program with PL/SQL - Lession 05
 
SQL- Introduction to MySQL
SQL- Introduction to MySQLSQL- Introduction to MySQL
SQL- Introduction to MySQL
 
Interacting with Oracle Database
Interacting with Oracle DatabaseInteracting with Oracle Database
Interacting with Oracle Database
 
Restricting and sorting data
Restricting and sorting dataRestricting and sorting data
Restricting and sorting data
 
Aggregate Function - Database
Aggregate Function - DatabaseAggregate Function - Database
Aggregate Function - Database
 
MYSQL Aggregate Functions
MYSQL Aggregate FunctionsMYSQL Aggregate Functions
MYSQL Aggregate Functions
 
Database object, sub query, Join Commands & Lab Assignment
Database object, sub query, Join Commands & Lab AssignmentDatabase object, sub query, Join Commands & Lab Assignment
Database object, sub query, Join Commands & Lab Assignment
 
Aggregate function
Aggregate functionAggregate function
Aggregate function
 
e computer notes - Manipulating data
e computer notes - Manipulating datae computer notes - Manipulating data
e computer notes - Manipulating data
 

Viewers also liked (7)

Les06
Les06Les06
Les06
 
Sql subquery
Sql subquerySql subquery
Sql subquery
 
PostgreSQL Advanced Queries
PostgreSQL Advanced QueriesPostgreSQL Advanced Queries
PostgreSQL Advanced Queries
 
4. SQL in DBMS
4. SQL in DBMS4. SQL in DBMS
4. SQL in DBMS
 
Oracle: Joins
Oracle: JoinsOracle: Joins
Oracle: Joins
 
Advanced Sql Training
Advanced Sql TrainingAdvanced Sql Training
Advanced Sql Training
 
Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1
 

Similar to Les18

Similar to Les18 (20)

Les06
Les06Les06
Les06
 
Les06 (using subqueries to solve queries)
Les06 (using subqueries to solve queries)Les06 (using subqueries to solve queries)
Les06 (using subqueries to solve queries)
 
Les06
Les06Les06
Les06
 
Chinabankppt
ChinabankpptChinabankppt
Chinabankppt
 
0808.pdf
0808.pdf0808.pdf
0808.pdf
 
0808.pdf
0808.pdf0808.pdf
0808.pdf
 
Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)Database Systems - SQL - DDL Statements (Chapter 3/3)
Database Systems - SQL - DDL Statements (Chapter 3/3)
 
Module 3.1.pptx
Module 3.1.pptxModule 3.1.pptx
Module 3.1.pptx
 
Its about a sql topic for basic structured query language
Its about a sql topic for basic structured query languageIts about a sql topic for basic structured query language
Its about a sql topic for basic structured query language
 
SQL Lesson 6 - Select.pdf
SQL Lesson 6 - Select.pdfSQL Lesson 6 - Select.pdf
SQL Lesson 6 - Select.pdf
 
ALL ABOUT SQL AND RDBMS
ALL ABOUT SQL AND RDBMSALL ABOUT SQL AND RDBMS
ALL ABOUT SQL AND RDBMS
 
PPT of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
PPT  of Common Table Expression (CTE), Window Functions, JOINS, SubQueryPPT  of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
PPT of Common Table Expression (CTE), Window Functions, JOINS, SubQuery
 
Oracle: Basic SQL
Oracle: Basic SQLOracle: Basic SQL
Oracle: Basic SQL
 
sql language
sql languagesql language
sql language
 
Les02
Les02Les02
Les02
 
Les05
Les05Les05
Les05
 
Sql query [select, sub] 4
Sql query [select, sub] 4Sql query [select, sub] 4
Sql query [select, sub] 4
 
Data Manipulation Language.pptx
Data Manipulation Language.pptxData Manipulation Language.pptx
Data Manipulation Language.pptx
 
Les04
Les04Les04
Les04
 
Les05 (Displaying Data from Multiple Table)
Les05 (Displaying Data from Multiple Table)Les05 (Displaying Data from Multiple Table)
Les05 (Displaying Data from Multiple Table)
 

More from Vijay Kumar (12)

Les20
Les20Les20
Les20
 
Les19
Les19Les19
Les19
 
Les15
Les15Les15
Les15
 
Les16
Les16Les16
Les16
 
Les14
Les14Les14
Les14
 
Les13
Les13Les13
Les13
 
Les12
Les12Les12
Les12
 
Les10
Les10Les10
Les10
 
Les09
Les09Les09
Les09
 
Les05
Les05Les05
Les05
 
Les04
Les04Les04
Les04
 
Les03
Les03Les03
Les03
 

Recently uploaded

+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
Health
 
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammamAbortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
samsungultra782445
 
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdfFOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
Cocity Enterprises
 
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
Cocity Enterprises
 
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
hyt3577
 

Recently uploaded (20)

Strategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate PresentationStrategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate Presentation
 
Q1 2024 Conference Call Presentation vF.pdf
Q1 2024 Conference Call Presentation vF.pdfQ1 2024 Conference Call Presentation vF.pdf
Q1 2024 Conference Call Presentation vF.pdf
 
+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
+971565801893>>SAFE ORIGINAL ABORTION PILLS FOR SALE IN DUBAI,RAK CITY,ABUDHA...
 
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
Famous Kala Jadu, Black magic expert in Faisalabad and Kala ilam specialist i...
 
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
uk-no 1 kala ilam expert specialist in uk and qatar kala ilam expert speciali...
 
Avoidable Errors in Payroll Compliance for Payroll Services Providers - Globu...
Avoidable Errors in Payroll Compliance for Payroll Services Providers - Globu...Avoidable Errors in Payroll Compliance for Payroll Services Providers - Globu...
Avoidable Errors in Payroll Compliance for Payroll Services Providers - Globu...
 
Group 8 - Goldman Sachs & 1MDB Case Studies
Group 8 - Goldman Sachs & 1MDB Case StudiesGroup 8 - Goldman Sachs & 1MDB Case Studies
Group 8 - Goldman Sachs & 1MDB Case Studies
 
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammamAbortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
Abortion pills in Saudi Arabia (+919707899604)cytotec pills in dammam
 
7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options
 
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdfFOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
FOREX FUNDAMENTALS: A BEGINNER'S GUIDE.pdf
 
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
 
FE Credit and SMBC Acquisition Case Studies
FE Credit and SMBC Acquisition Case StudiesFE Credit and SMBC Acquisition Case Studies
FE Credit and SMBC Acquisition Case Studies
 
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
 
logistics industry development power point ppt.pdf
logistics industry development power point ppt.pdflogistics industry development power point ppt.pdf
logistics industry development power point ppt.pdf
 
Call Girls Howrah ( 8250092165 ) Cheap rates call girls | Get low budget
Call Girls Howrah ( 8250092165 ) Cheap rates call girls | Get low budgetCall Girls Howrah ( 8250092165 ) Cheap rates call girls | Get low budget
Call Girls Howrah ( 8250092165 ) Cheap rates call girls | Get low budget
 
Stock Market Brief Deck (Under Pressure).pdf
Stock Market Brief Deck (Under Pressure).pdfStock Market Brief Deck (Under Pressure).pdf
Stock Market Brief Deck (Under Pressure).pdf
 
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
QATAR Pills for Abortion -+971*55*85*39*980-in Dubai. Abu Dhabi.
 
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdfSeeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
 
Technology industry / Finnish economic outlook
Technology industry / Finnish economic outlookTechnology industry / Finnish economic outlook
Technology industry / Finnish economic outlook
 
Significant AI Trends for the Financial Industry in 2024 and How to Utilize Them
Significant AI Trends for the Financial Industry in 2024 and How to Utilize ThemSignificant AI Trends for the Financial Industry in 2024 and How to Utilize Them
Significant AI Trends for the Financial Industry in 2024 and How to Utilize Them
 

Les18

  • 2.
  • 3.
  • 4.
  • 5. Using a Subquery SELECT last_name FROM employees WHERE salary > (SELECT salary FROM employees WHERE employee_id = 149) ; 10500
  • 6. Multiple-Column Subqueries Main query WHERE (MANAGER_ID, DEPARTMENT_ID) IN Subquery 100 90 102 60 124 50 Each row of the main query is compared to values from a multiple-row and multiple-column subquery.
  • 7.
  • 8.
  • 9.
  • 10. Using a Subquery in the FROM Clause SELECT a.last_name, a.salary, a.department_id, b.salavg FROM employees a, (SELECT department_id, AVG(salary) salavg FROM employees GROUP BY department_id) b WHERE a.department_id = b.department_id AND a.salary > b.salavg;
  • 11.
  • 12.
  • 14.
  • 15.
  • 16.
  • 17. Using Correlated Subqueries SELECT e.employee_id, last_name,e.job_id FROM employees e WHERE 2 <= (SELECT COUNT(*) FROM job_history WHERE employee_id = e.employee_id); Display details of those employees who have switched jobs at least twice.
  • 18.
  • 19.
  • 20. Using the NOT EXISTS Operator SELECT department_id, department_name FROM departments d WHERE NOT EXISTS (SELECT 'X' FROM employees WHERE department_id = d.department_id); Find all departments that do not have any employees.
  • 21.
  • 22.
  • 24. Correlated DELETE DELETE FROM table1 alias1 WHERE column operator (SELECT expression FROM table2 alias2 WHERE alias1.column = alias2.column); Use a correlated subquery to delete rows in one table based on rows from another table.
  • 25.
  • 26.
  • 27.
  • 28. WITH Clause: Example WITH dept_costs AS ( SELECT d.department_name, SUM(e.salary) AS dept_total FROM employees e, departments d WHERE e.department_id = d.department_id GROUP BY d.department_name), avg_cost AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs ) SELECT * FROM dept_costs WHERE dept_total > (SELECT dept_avg FROM avg_cost ) ORDER BY department_name;
  • 29.
  • 30.
  • 31.

Editor's Notes

  1. Schedule: Timing Topic 60 minutes Lecture 50 minutes Practice 110 minutes Total