SQL Server Menengah
Ginger Grant
Instructor
Bab 1: Meringkas data
Bab 2: Fungsi tanggal dan matematika
Bab 3: Memroses data dengan T-SQL
Bab 4: Fungsi jendela
Meninjau ringkasan nilai tiap kolom adalah langkah awal umum saat menganalisis data
Jika data ada di basis data, cara tercepat mengagregasi adalah dengan 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() untuk nilai minimum kolomMAX() untuk nilai maksimum kolomAVG() untuk nilai rata-rata kolomKueri T-SQL ini mengembalikan nilai agregat untuk kolom InternetUse
SELECT AVG(InternetUse) AS MeanInternetUse,
MIN(InternetUse) AS MINInternet,
MAX(InternetUse) AS MAXInternet
FROM EconomicIndicators
+-------------------+------------+-------------+
|MeanInternetUse |MINInternet | MAXInternet|
|-------------------+------------+-------------|
| 18.9854496196171| 0 | 375.5970064|
+-------------------+------------+-------------+
Kueri T-SQL ini memfilter nilai agregat dengan klausa WHERE
Perhatikan nilai teks ada di
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|
...
+--------------------+------------------+------------+-------------+
Tidak dapat menggunakan WHERE dengan GROUP BY karena akan menimbulkan error
-- Ini menghasilkan error
...
GROUP BY
WHERE Max(InternetUse) > 100
Sebagai gantinya, gunakan HAVING
-- Beginilah cara memfilter dengan 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 Menengah