0% found this document useful (0 votes)
4 views7 pages

Lab05 (CW)

CSE302 LAB05(CW)

Uploaded by

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

Lab05 (CW)

CSE302 LAB05(CW)

Uploaded by

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

A.

IN / NOT IN:

1.
SELECT DISTINCT course_id
FROM Section
WHERE semester = 'Fall' AND year = 2009
AND course_id IN (
SELECT course_id
FROM Section
WHERE semester = 'Spring' AND year = 2010
);

2.
SELECT DISTINCT course_id
FROM Section
WHERE semester = 'Fall' AND year = 2009
AND course_id NOT IN (
SELECT course_id
FROM Section
WHERE semester = 'Spring' AND year = 2010
);

3.
SELECT COUNT(DISTINCT ID) AS total_students
FROM Takes
WHERE sec_id IN (
SELECT sec_id
FROM teaches
WHERE teaches.ID = 10101
);
B. SOME / ALL

1.
SELECT name
FROM Instructor
WHERE salary > SOME (
SELECT salary
FROM Instructor
WHERE dept_name = 'Biology'
);

2.
SELECT name
FROM Instructor
WHERE salary > ALL (
SELECT salary
FROM Instructor
WHERE dept_name = 'Biology'
);

C. EXISTS/NOT EXISTS

1.
SELECT DISTINCT course_id
FROM Section S1
WHERE semester = 'Fall' AND year = 2009
AND EXISTS (
SELECT 1
FROM Section S2
WHERE S2.course_id = S1.course_id
AND semester = 'Spring' AND year = 2010
);

2.
SELECT DISTINCT course_id
FROM Section S1
WHERE semester = 'Fall' AND year = 2009
AND NOT EXISTS (
SELECT 1
FROM Section S2
WHERE S2.course_id = S1.course_id
AND semester = 'Spring' AND year = 2010
);

3.
SELECT DISTINCT T.ID
FROM Takes T
WHERE NOT EXISTS (
SELECT course_id
FROM Course
WHERE dept_name = 'Biology'
AND course_id NOT IN (
SELECT course_id
FROM Takes
WHERE Takes.ID = T.ID
)
);
➔ Subqueries in the FROM clause

1.
SELECT dept_name, AVG(salary) AS avg_salary
FROM Instructor
GROUP BY dept_name
HAVING AVG(salary) > 42000;

➔ Complex Queries using WITH clause

1.
WITH DeptBudgets AS (
SELECT dept_name, MAX(budget) AS max_budget
FROM Department
)
SELECT dept_name
FROM DeptBudgets
WHERE budget = (SELECT MAX(max_budget) FROM DeptBudgets);

2.
WITH DeptTotalSalaries AS (
SELECT dept_name, SUM(salary) AS total_salary
FROM Instructor
GROUP BY dept_name
)
SELECT dept_name
FROM DeptTotalSalaries
WHERE total_salary > (
SELECT AVG(total_salary)
FROM DeptTotalSalaries
);

➔ Subqueries in the SELECT clause (Scalar Subquery)

1.
SELECT dept_name, (
SELECT COUNT(*)
FROM Instructor I
WHERE I.dept_name = D.dept_name
) AS num_instructors
FROM Department D;

➔ Performing Outer Joins


SELECT dept_name, (
SELECT COUNT(*)
FROM Instructor I
WHERE I.dept_name = D.dept_name
) AS num_instructors
FROM Department D;

SELECT D.*, I.*


FROM Department D
LEFT JOIN Instructor I ON D.dept_name = I.dept_name;

SELECT D.*, I.*


FROM Department D
RIGHT JOIN Instructor I ON D.dept_name = I.dept_name;

SELECT D.*, I.*


FROM Department D
FULL OUTER JOIN Instructor I ON D.dept_name = I.dept_name;

SELECT D.dept_name, COUNT(I.ID) AS num_instructors


FROM Department D
LEFT JOIN Instructor I ON D.dept_name = I.dept_name
GROUP BY D.dept_name;

You might also like