Bienvenue

SQL Server intermédiaire

Ginger Grant

Instructor

Aperçu du cours

  • Chapitre 1 : Résumer les données

  • Chapitre 2 : Fonctions de date et mathématiques

  • Chapitre 3 : Traitement des données avec T-SQL

  • Chapitre 4 : Fonctions de fenêtrage

SQL Server intermédiaire

Explorer les données avec l'agrégation

  • Examiner les valeurs récapitulatives par colonne est souvent la première étape d'une analyse

  • Si les données sont dans une base, le plus rapide pour agréger est d'utiliser SQL

SQL Server intermédiaire

Exploration des données avec 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 intermédiaire

Statistiques récapitulatives courantes

  • MIN() pour la valeur minimale d'une colonne
  • MAX() pour la valeur maximale d'une colonne
  • AVG() pour la moyenne d'une colonne
SQL Server intermédiaire

Statistiques récapitulatives en T-SQL

Cette requête T-SQL retourne les valeurs agrégées de la colonne 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 intermédiaire

Filtrer les résumés avec WHERE

Cette requête T-SQL filtre les valeurs agrégées avec une clause WHERE
Remarquez que la valeur texte est entre

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 intermédiaire

Sous-totaux par groupes avec 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 intermédiaire

HAVING est le WHERE des agrégations

On ne peut pas utiliser WHERE avec GROUP BY : cela produit une erreur

-- Ceci génère une erreur
...
GROUP BY
WHERE Max(InternetUse) > 100  

Utilisez plutôt HAVING

-- Voici comment filtrer avec un GROUP BY
...
GROUP BY
HAVING Max(InternetUse) > 100
SQL Server intermédiaire

HAVING est le WHERE des agrégations

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 intermédiaire

Examiner les données sur les OVNI dans la table Incidents

  • L'exercice explorera des données du Mutual UFO Network
  • Les OVNI observés partout dans le monde sont dans la table Incidents
SQL Server intermédiaire

Passons à la pratique !

SQL Server intermédiaire

Preparing Video For Download...