Introduction au cours

Écrire des fonctions et des procédures stockées dans SQL Server

Meghan Kwartler

IT Consultant

Objectifs du cours

  • Réaliser une EDA temporelle avec les fonctions de dates SQL
  • Créer, mettre à jour et exécuter des fonctions définies par l'utilisateur
  • Créer, mettre à jour et exécuter des procédures stockées
  • Prérequis
    • Introduction à SQL Server
    • Jointures en SQL
    • SQL Server intermédiaire
Écrire des fonctions et des procédures stockées dans SQL Server

EDA temporelle

  • Jeux de données transactionnels
    • CapitalBikeShare
    • YellowTripTaxi
  • Processus d'EDA
    • Itératif
    • Pas de checklist figée pour les questions d'EDA
    • Soyez curieux·se !
    • Réduit les reprises

Visuel EDA

Écrire des fonctions et des procédures stockées dans SQL Server

Fonctions SQL pour l'EDA

-- Syntaxe de CONVERT :  
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )  
-- Retourne l'expression selon data_type
-- Syntaxe de DATEPART
DATEPART ( datepart , date ) 
-- Retourne un int
-- Syntaxe de DATENAME
DATENAME ( datepart , date ) 
-- Retourne un nvarchar
-- Syntaxe de DATEDIFF
DATEDIFF ( datepart , startdate , enddate ) 
-- Retourne un int ; impossible d'utiliser la valeur weekday de datepart
-- Valeurs possibles de datepart : year, quarter, month, dayofyear, day, week, weekday, hour, 
-- minute, second, microsecond, nanosecond
Écrire des fonctions et des procédures stockées dans SQL Server
-- CONVERT
SELECT 
  TOP 1 PickupDate, 
  CONVERT (DATE, PickupDate) AS DateOnly 
FROM YellowTripData
+-----------------------------+------------+
| PickupDate                  | DateOnly   |
|-----------------------------+------------|
| 2017-01-09 11:52:13.0000000 | 2017-01-09 |
+-----------------------------+------------+
Écrire des fonctions et des procédures stockées dans SQL Server
-- DATEPART
SELECT 
  TOP 3 COUNT(ID) AS NumberofRides, 
  DATEPART(HOUR, PickupDate) AS Hour 
FROM YellowTripData 
GROUP BY DATEPART(HOUR, PickupDate) 
ORDER BY COUNT(ID) DESC
+----------------------+
| NumberOfRides | Hour |
|----------------------+
| 616281        | 18   |
| 616281        | 19   |
| 540629        | 17   |
+---------------+------+
Écrire des fonctions et des procédures stockées dans SQL Server
--DATENAME
SELECT 
  TOP 3 ROUND(
    SUM(FareAmount), 
    0
  ) as TotalFareAmt, 
  DATENAME(WEEKDAY, PickupDate) AS DayofWeek 
FROM YellowTripData 
GROUP BY DATENAME (WEEKDAY, PickupDate) 
ORDER BY SUM(FareAmount) DESC;
+--------------------------+
| TotalFareAmt | DayofWeek |
|--------------------------+
| 19026645     | Sunday    |
| 18749482     | Tuesday   |
| 17213351     | Thursday  |
+--------------+-----------+
Écrire des fonctions et des procédures stockées dans SQL Server
--DATEDIFF
SELECT 
  AVG(
    DATEDIFF(SECOND, PickupDate, DropOffDate)/ 60
  ) AS AvgRideLengthInMin 
FROM YellowTripData 
WHERE DATENAME(WEEKDAY, PickupDate) = 'Sunday';
+--------------------+
| AvgRideLengthInMin |
|--------------------+
| 13                 |
+--------------------+
Écrire des fonctions et des procédures stockées dans SQL Server

Passons à la pratique !

Écrire des fonctions et des procédures stockées dans SQL Server

Preparing Video For Download...