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');
SELECT, FROM, WHERE, और GROUP BY को लाइन में रखेंSELECT
col1,
col2,
col3
FROM table1
WHERE col1 = 2;
/* यह क्वेरी col1 = 2 के लिए फ़िल्टर करती है
और सिर्फ table1 से डेटा सेलेक्ट करती है */
SELECT
col1,
col2,
col3
FROM table1
WHERE col1 = 2;
SELECT
col1,
col2,
col3
FROM table1 -- इस टेबल में 10,000 रो हैं
WHERE col1 = 2; -- WHERE का वैल्यू 2 से फ़िल्टर
SELECT
col1,
col2,
col3
FROM table1
WHERE col1 IN
(SELECT id
FROM table2
WHERE year = 1991);
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;
सबक्वेरियों को कंप्यूटिंग पावर चाहिए
क्या सबक्वेरी वाकई ज़रूरी है?
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