सबक्वेरी और कॉमन टेबल एक्सप्रेशन (CTE)

PostgreSQL में क्वेरी प्रदर्शन सुधारना

Amy McCarty

Instructor

सबक्वेरी के बारे में

क्या?

  • Join का विकल्प
  • सरल क्वेरी

क्यों?

  • एक परिणाम दे सकती है
  • पढ़ने में आसान
  • SQL निर्देश joins जैसे

कैसे?

  • SELECT, FROM, या WHERE क्लॉज़ में
PostgreSQL में क्वेरी प्रदर्शन सुधारना

SELECT सबक्वेरी

row script_word word_length
1 goat 4
2 goat 4
3 dog 3
15,782 ... ...
row english_word word_length
1 goat 4
2 turkey 6
3 ant 3
171,476 ... ...
PostgreSQL में क्वेरी प्रदर्शन सुधारना

SELECT सबक्वेरी

SELECT AVG(word_length) AS avg_movie
  , (SELECT AVG(word_length) 
      FROM english_language) 
      AS avg_english
FROM MOVIE
avg_movie avg_english
3 4.5
PostgreSQL में क्वेरी प्रदर्शन सुधारना

WHERE सबक्वेरी

row script_word word_length
1 goat 4
2 goat 4
3 dog 3
15,782 ... ...
row english_word word_length
1 goat 4
2 turkey 6
3 ant 3
171,476 ... ...
PostgreSQL में क्वेरी प्रदर्शन सुधारना

WHERE सबक्वेरी

SELECT AVG(word_length) AS avg_movie
FROM english_language
WHERE word IN 
  (SELECT DISTINCT word FROM movie) 
avg_movie
3
PostgreSQL में क्वेरी प्रदर्शन सुधारना

FROM सबक्वेरी

SELECT AVG(word_length) AS avg_movie 
FROM (SELECT * FROM movie)

 

  • पठनीयता घटती है
  • क्वेरी प्लान की लचीलापन सीमित होता है
PostgreSQL में क्वेरी प्रदर्शन सुधारना

कॉमन टेबल एक्सप्रेशन (CTEs) के बारे में

क्या?

  • Join का विकल्प
  • अस्थायी परिणाम सेट वाली स्टैंडअलोन क्वेरी

क्यों?

  • एक परिणाम दे सकती है
  • पढ़ने में आसान
  • अस्थायी टेबल बनती है

कैसे?

  • WITH स्टेटमेंट्स
PostgreSQL में क्वेरी प्रदर्शन सुधारना

CTE संरचना

WITH english_cte AS
(    
  SELECT word_length
      , COUNT(word) AS english_word_count
    FROM english_language 
    GROUP BY word_length
)

SELECT movie.word_length , COUNT(movie.word) AS movie_word_count , cte.english_word_count FROM movie INNER JOIN english_cte cte ON movie.word_length = cte.word_length GROUP BY movie.word_length, cte.english_word_count
PostgreSQL में क्वेरी प्रदर्शन सुधारना

अभ्यास करते हैं!

PostgreSQL में क्वेरी प्रदर्शन सुधारना

Preparing Video For Download...