중급 SQL Server
Ginger Grant
Instructor
챕터 1: 데이터 요약
챕터 2: 날짜 및 수학 함수
챕터 3: T-SQL로 데이터 처리
챕터 4: 윈도우 함수
각 열의 요약 값을 검토하는 것은 데이터 분석의 일반적인 첫 번째 단계입니다
데이터가 데이터베이스에 있다면, 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(): 열의 평균값이 T-SQL 쿼리는 InternetUse 열의 집계 값을 반환합니다
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 절을 사용하여 집계 값을 필터링합니다
텍스트 값은 다음과 같이 입력합니다
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|
...
+--------------------+------------------+------------+-------------+
WHERE는 GROUP BY와 함께 사용할 수 없으며, 오류가 발생합니다
-- This throws an error
...
GROUP BY
WHERE Max(InternetUse) > 100
대신 HAVING을 사용합니다
-- This is how you filter with a 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