सबक्वेरी हर जगह! और बेस्ट प्रैक्टिसेज!

SQL में Data Manipulation

Mona Khalil

Data Scientist, Greenhouse Software

जितनी चाहें उतनी सबक्वेरियाँ...

  • SELECT, FROM, WHERE में कई सबक्वेरियाँ शामिल कर सकते हैं
SELECT 
    s.stage,
    ROUND(s.avg_goals,2) AS avg_goal,
    (SELECT AVG(home_goal + away_goal)
     FROM match WHERE season = '2013/2014') AS overall_avg
FROM 
    (SELECT
         stage,
         AVG(home_goal + away_goal) AS avg_goals
     FROM match
     WHERE season = '2013/2014'
     GROUP BY stage) AS s
WHERE 
    s.avg_goals > (SELECT AVG(home_goal + away_goal) 
                   FROM match WHERE season = '2013/2014');
SQL में Data Manipulation

अपनी क्वेरियाँ फ़ॉर्मैट करें

  • SELECT, FROM, WHERE, और GROUP BY को लाइन में रखें
SELECT
    col1,
    col2,
    col3
FROM table1
WHERE col1 = 2;
SQL में Data Manipulation

अपनी क्वेरियों पर टिप्पणी लिखें

/* यह क्वेरी col1 = 2 के लिए फ़िल्टर करती है
और सिर्फ table1 से डेटा सेलेक्ट करती है */
SELECT
    col1,
    col2,
    col3
FROM table1
WHERE col1 = 2;
SQL में Data Manipulation

अपनी क्वेरियों पर टिप्पणी लिखें

SELECT
    col1,
    col2,
    col3
FROM table1 -- इस टेबल में 10,000 रो हैं
WHERE col1 = 2; -- WHERE का वैल्यू 2 से फ़िल्टर
SQL में Data Manipulation

क्वेरियाँ इंडेंट करें

  • अपनी सबक्वेरियाँ इंडेंट करें!
SELECT
    col1,
    col2,
    col3
FROM table1
WHERE col1 IN
        (SELECT id
         FROM table2
         WHERE year = 1991);
SQL में Data Manipulation

क्वेरियाँ इंडेंट करें

SELECT 
  date, 
  hometeam_id, 
  awayteam_id,
  CASE WHEN hometeam_id = 8455 AND home_goal > away_goal 
            THEN 'Chelsea home win'
       WHEN awayteam_id = 8455 AND home_goal < away_goal
            THEN 'Chelsea away win'
       WHEN hometeam_id = 8455 AND home_goal < away_goal
            THEN 'Chelsea home loss'
       WHEN awayteam_id = 8455 AND home_goal > away_goal
            THEN 'Chelsea away loss'
       WHEN (hometeam_id = 8455 OR awayteam_id = 8455) 
            AND home_goal = away_goal THEN 'Chelsea Tie'
       END AS outcome
FROM match
WHERE hometeam_id = 8455 OR awayteam_id = 8455;

Holywell का SQL स्टाइल गाइड

SQL में Data Manipulation

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

  • सबक्वेरियों को कंप्यूटिंग पावर चाहिए

    • आपका डेटाबेस कितना बड़ा है?
    • जिस टेबल पर क्वेरी है, वह कितनी बड़ी है?
  • क्या सबक्वेरी वाकई ज़रूरी है?

SQL में Data Manipulation

हर सबक्वेरी को सही तरीके से फ़िल्टर करें!

  • अपने फ़िल्टर्स पर ध्यान दें!
SELECT 
    s.stage,
    ROUND(s.avg_goals,2) AS avg_goal,
    (SELECT AVG(home_goal + away_goal)
     FROM match WHERE season = '2013/2014') AS overall_avg
FROM 
    (SELECT
         stage,
         AVG(home_goal + away_goal) AS avg_goals
     FROM match
     WHERE season = '2013/2014'
     GROUP BY stage) AS s
WHERE 
    s.avg_goals > (SELECT AVG(home_goal + away_goal) 
                   FROM match WHERE season = '2013/2014');
SQL में Data Manipulation

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

SQL में Data Manipulation

Preparing Video For Download...