इंटरमीडिएट SQL Server
Ginger Grant
Instructor
अध्याय 1: डेटा का सारांश
अध्याय 2: Date और गणितीय functions
अध्याय 3: T-SQL से डेटा प्रोसेसिंग
अध्याय 4: Window functions
हर कॉलम के summarized मान देखना डेटा विश्लेषण का आम पहला कदम है
यदि डेटा डेटाबेस में है, तो aggregate करने का सबसे तेज़ तरीका SQL है
SELECT Country, Year, InternetUse, GDP,
ExportGoodsPercent, CellPhonesper100
FROM EconomicIndicators
+-----------+-----+------------+------------+------------------+-----------------+
|Country |Year |InternetUse | GDP |ExportGoodsPercent|CellPhonesper100 |
+-----------+-----+------------+------------+------------------+-----------------+
|Swaziland |2011 |20.43165813 |7335004354 |56.30476059 |63.7015615 |
|Sweden |2011 |90.88204559 |394271163688|49.93022195 |118.5711258 |
|Switzerland|2011 |82.98773087 |395111518596|51.20242546 |130.0623629 |
...
+-----------+-----+------------+------------+------------------+-----------------+
MIN() कॉलम का न्यूनतम मानMAX() कॉलम का अधिकतम मानAVG() कॉलम का mean या averageयह T-SQL क्वेरी InternetUse कॉलम के aggregated मान लौटाती है
SELECT AVG(InternetUse) AS MeanInternetUse, MIN(InternetUse) AS MINInternet, MAX(InternetUse) AS MAXInternet FROM EconomicIndicators+-------------------+------------+-------------+ |MeanInternetUse |MINInternet | MAXInternet| |-------------------+------------+-------------| | 18.9854496196171| 0 | 375.5970064| +-------------------+------------+-------------+
यह T-SQL क्वेरी WHERE clause से aggregated मानों को फ़िल्टर करती है
ध्यान दें कि text मान है
SELECT AVG(InternetUse) AS MeanInternetUse,
MIN(InternetUse) AS MINInternet,
MAX(InternetUse) AS MAXInternet
FROM EconomicIndicators
WHERE Country = 'Solomon Islands'
+-------------------+------------+-------------+
|MeanInternetUse |MINInternet | MAXInternet|
|-------------------+------------+-------------|
| 1.79621| 0 | 6.00|
+-------------------+------------+-------------+
SELECT Country, AVG(InternetUse) AS MeanInternetUse,
MIN(InternetUse) AS MINInternet,
MAX(InternetUse) AS MAXInternet
FROM EconomicIndicators
GROUP BY Country
+--------------------+------------------+------------+-------------+
| Country |MeanInternetUse |MINInternet | MAXInternet|
|--------------------+------------------+------------+-------------|
|Solomon Islands | 1.79621| 0| 6.00|
|Hong Kong | 245.1067| 0| 375.00|
|Liechtenstein | 63.8821| 36.5152| 85.00|
...
+--------------------+------------------+------------+-------------+
GROUP BY के साथ WHERE नहीं इस्तेमाल कर सकते, इससे error आएगा
-- यह error देगा
...
GROUP BY
WHERE Max(InternetUse) > 100
इसके बजाय HAVING का उपयोग करें
-- GROUP BY के साथ ऐसे फ़िल्टर करें
...
GROUP BY
HAVING Max(InternetUse) > 100
SELECT Country, AVG(InternetUse) AS MeanInternetUse,
MIN(GDP) AS SmallestGDP,
MAX(InternetUse) AS MAXInternetUse
FROM EconomicIndicators
GROUP BY Country
HAVING MAX(InternetUse) > 100
+--------------+-------------------+-------------+---------------+
|Country |MeanInternetUse |SmallestGDP | MAXInternetUse|
|--------------+-------------------+-------------+---------------|
|Macedonia | 71.3060150792857| -0.465059948| 110.5679538|
|Hong Kong | 245.106718614286| 0| 375.5970064|
|Congo | 60.8972476010714| -9.492757847| 104.6455529|
...
+--------------+-------------------+-------------+---------------+
इंटरमीडिएट SQL Server