सबक्वेरी कहाँ होती हैं?

SQL में Data Manipulation

Mona Khalil

Data Scientist, Greenhouse Software

सबक्वेरी क्या है?

  • एक क्वेरी के अंदर nested दूसरी क्वेरी
SELECT column
FROM (SELECT column
      FROM table) AS subquery;
  • बीच के transformations के लिए उपयोगी
SQL में Data Manipulation

सबक्वेरी से क्या कर सकते हैं?

  • क्वेरी के किसी भी हिस्से में हो सकती है

    • SELECT, FROM, WHERE, GROUP BY
  • अलग-अलग तरह की जानकारी लौटा सकती है

    • Scalar मान (3.14159, -2, 0.001)
    • एक सूची (id = (12, 25, 392, 401, 939))
    • एक टेबल
SQL में Data Manipulation

सबक्वेरी क्यों?

  • समूहों की तुलना summarized मानों से
    • उस साल Liverpool का प्रदर्शन English Premier League के औसत से कैसा रहा?
  • डेटा को reshaping करना
    • Bundesliga में गोल्स का सबसे ऊँचा मासिक औसत क्या है?
  • ऐसा डेटा मिलाना जो join नहीं हो सकता
    • मैच परिणामों की टेबल में home और away दोनों टीमों के नाम कैसे लाएँ?
SQL में Data Manipulation

सिंपल सबक्वेरीज़

  • outer क्वेरी से स्वतंत्र रूप से evaluate हो सकती हैं
SELECT home_goal
FROM match
WHERE home_goal > (
    SELECT AVG(home_goal) 
    FROM match);

SELECT AVG(home_goal) FROM match;
1.56091291478423
SQL में Data Manipulation

सिंपल सबक्वेरीज़

  • पूरे स्टेटमेंट में केवल एक बार प्रोसेस होती है
SELECT home_goal
FROM match
WHERE home_goal > (
    SELECT AVG(home_goal) 
    FROM match);
SQL में Data Manipulation

WHERE क्लॉज़ में सबक्वेरीज़

  • 2012/2013 सीज़न में कौन-से मैचों के home गोल कुल औसत से अधिक थे?
SELECT AVG(home_goal) FROM match;
1.56091291478423
SELECT date, hometeam_id, awayteam_id, home_goal, away_goal
FROM match
WHERE season = '2012/2013'
      AND home_goal > 1.56091291478423;
SQL में Data Manipulation

WHERE क्लॉज़ में सबक्वेरीज़

  • 2012/2013 सीज़न में कौन-से मैचों के home गोल कुल औसत से अधिक थे?
SELECT date, hometeam_id, awayteam_id, home_goal, away_goal
FROM match
WHERE season = '2012/2013'
      AND home_goal > (SELECT AVG(home_goal)
                     FROM match);
| date       | hometeam_id | awayteam_id | home_goal | away_goal |
|------------|-------------|-------------|-----------|-----------|
| 2012-07-28 | 9998        | 1773        | 5         | 2         |
| 2012-07-29 | 9987        | 9984        | 3         | 3         |
| 2012-10-05 | 9993        | 9991        | 2         | 2         |
SQL में Data Manipulation

IN के साथ सूची को फ़िल्टर करती सबक्वेरी

  • Poland की लीग में कौन-सी टीमें हैं?
SELECT
  team_long_name,
  team_short_name AS abbr
FROM team
WHERE 
  team_api_id IN 
  (SELECT hometeam_id
   FROM match
   WHERE country_id = 15722);
| team_long_name | abbr |
|----------------|------|
| Ruch Chorzów   | CHO  |
| Jagiellonia    | BIA  |
| Lech Poznań    | POZ  |
| P. Warszawa    | PWA  |
| Cracovia       | CKR  |
| Górnik Łęczna  | LEC  |
| Polonia Bytom  | GOR  |
| Zagłębie Lubin | ZAG  |
| Pogoń Szczecin | POG  |
| Widzew Łódź    | WID  |
| Śląsk Wrocław  | SLA  |
SQL में Data Manipulation

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

SQL में Data Manipulation

Preparing Video For Download...