|8. Subqueries
Chapter 8SQL Tutorial~1 min read

Subqueries

Query मध्ये Query — Subqueries

Subquery म्हणजे दुसऱ्या query च्या आत लिहिलेली query. Inner query आधी execute होते, त्याचा result outer query वापरतो. WHERE, FROM, आणि SELECT मध्ये subqueries वापरता येतात.

WHERE मध्ये Subquery

Subquery in WHERE

sql
-- Average पेक्षा जास्त marks असलेले students
SELECT name, marks
FROM students
WHERE marks > (SELECT AVG(marks) FROM students);
-- Inner query: AVG = 70.5 (example)
-- Outer query: marks > 70.5 असलेले students

-- सर्वात जास्त marks असलेला student
SELECT name, marks
FROM students
WHERE marks = (SELECT MAX(marks) FROM students);

-- Pune मधले students च्या average पेक्षा जास्त
SELECT name, marks, city
FROM students
WHERE marks > (
    SELECT AVG(marks)
    FROM students
    WHERE city = 'Pune'
);

IN Subquery

Subquery with IN

sql
-- Python course enrolled असलेले students
SELECT name, city
FROM students
WHERE id IN (
    SELECT student_id
    FROM enrollments
    WHERE course = 'Python'
);

-- कोणत्याही course मध्ये enrolled नसलेले
SELECT name
FROM students
WHERE id NOT IN (
    SELECT DISTINCT student_id
    FROM enrollments
    WHERE student_id IS NOT NULL
);

FROM मध्ये Subquery (Derived Table)

Subquery as derived table

sql
-- City averages मधून 75+ असलेल्या cities
SELECT city, avg_marks
FROM (
    SELECT city, ROUND(AVG(marks), 1) AS avg_marks
    FROM students
    GROUP BY city
) AS city_stats              -- derived table ला alias लागतो!
WHERE avg_marks > 75
ORDER BY avg_marks DESC;

-- Top scorer प्रत्येक city मधून
SELECT s.name, s.city, s.marks
FROM students s
INNER JOIN (
    SELECT city, MAX(marks) AS top_marks
    FROM students
    GROUP BY city
) AS tops ON s.city = tops.city AND s.marks = tops.top_marks;

Key Points — लक्षात ठेवा

  • Subquery = query आत query, () मध्ये लिहितो
  • Inner query आधी execute, result outer query वापरतो
  • WHERE col = (subquery) — scalar subquery
  • WHERE col IN (subquery) — multiple values
  • FROM (subquery) AS alias — derived table
0/10 chapters पूर्ण