歡迎

SQL Server 中級

Ginger Grant

Instructor

課程總覽

  • 第 1 章:資料摘要

  • 第 2 章:日期與數學函式

  • 第 3 章:用 T-SQL 處理資料

  • 第 4 章:視窗函式

SQL Server 中級

用彙總探索資料

  • 檢視各欄位的摘要值,是分析資料的常見起點。

  • 若資料在資料庫中,使用 SQL 彙總最快。

SQL Server 中級

以 EconomicIndicators 探索資料

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      |
...
+-----------+-----+------------+------------+------------------+-----------------+
SQL Server 中級

常見摘要統計

  • MIN():欄位最小值
  • MAX():欄位最大值
  • AVG():欄位平均值
SQL Server 中級

T-SQL 的常見摘要統計

這個 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| +-------------------+------------+-------------+
SQL Server 中級

用 WHERE 篩選摘要資料

這個 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|
+-------------------+------------+-------------+
SQL Server 中級

用 GROUP BY 依群組分小計

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|
...
+--------------------+------------------+------------+-------------+
SQL Server 中級

HAVING 是彙總的 WHERE

不能把 WHEREGROUP BY 一起用,否則會出錯。

-- 這會拋出錯誤
...
GROUP BY
WHERE Max(InternetUse) > 100  

改用 HAVING

-- 這才是搭配 GROUP BY 篩選的方法
...
GROUP BY
HAVING Max(InternetUse) > 100
SQL Server 中級

HAVING 是彙總的 WHERE

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 中級

檢視 Incidents 表的 UFO 資料

  • 這個練習會探索來自 Mutual UFO Network 的資料。
  • 全世界的 UFO 目擊事件都收錄在 Incidents 資料表。
SQL Server 中級

一起來練習吧!

SQL Server 中級

Preparing Video For Download...