Skip to content

Instantly share code, notes, and snippets.

@bastienapp
Created October 2, 2018 11:40
Show Gist options
  • Save bastienapp/14e583cc6a2dab3ff9c948fbd44d64fc to your computer and use it in GitHub Desktop.
Save bastienapp/14e583cc6a2dab3ff9c948fbd44d64fc to your computer and use it in GitHub Desktop.

Cours SQL :

Challenge

Prioriser la maintenance des vélos à Washington DC

L'agglomération de Washington DC a mis en place un réseau de vélos en libre-service dans toute la ville. Pour anticiper la maintenance des vélos (graissage de chaines, câbles de freins, pression des pneus), le responsable de l'atelier a besoin de savoir quels sont les vélos qui ont roulé le plus longtemps ?

Nous sommes le 1er avril 2012, les données sur l'utilisation des vélos pendant le dernier trimestre viennent d'être publiées dans une base de données. Ta mission sera d'écrire une requête SQL sur la base de données afin d'obtenir la liste des 300 vélos qui ont été le plus utilisés pendant le dernier trimestre.

  1. Crée un compte sur l'application Mode, tu peux te connecter facilement avec ton compte Google si tu en as un.

  2. Une fois connecté, crée une nouvelle requête en cliquant sur l'icon + vert situé en haut à droite New query

  3. Tu vas arriver sur cet écran mode_write_request Lis le contenu de la table avec les données des vélos de Washington

    SELECT * FROM tutorial.dc_bikeshare_q1_2012
    
  4. Écris ta requête afin d'afficher 2 colonnes:

  • bike_number, le numéro d'identification du vélo
  • duration_hours, le nombre total d'heures d'utilisation de chaque vélo, avec le vélo le plus utilisé en premier Indice: 1 heure = 3600 secondes
  1. Une fois le résultat voulu obtenu, partage le rapport en cliquant sur share en haut à gauche et poste le Report Link en guise de solution. share report_record Un exemple de rapport : Où se font les investissements dans l'éducation ?

  2. Trucs et astuces...

Plutôt que de faire directement la requête demandée en un seul coup, essaye de construire la requête avec les étapes suivantes :

  1. Fais une sélection des bike_number et duration_seconds sur la table,
  2. Organise les résultats sur duration_seconds en allant du plus grand au plus petit,
  3. Limite les résultats à 300,
  4. Trouve un moyen de modifier la valeur duration_seconds pour la passer en heure, et de changer le nom de la colonne de résultat en duration_hours,
  5. Groupe les résultats par bike_number (il y a plusieurs fois les mêmes bike_number dans les résultats),
  6. Fais la somme des duration_seconds pour chaque ligne de bike_number (par défaut, quand on groupe, cela prend le premier résultat de chaque colonne, il faut donc utiliser un système pour ajouter les valeurs de la colonne duration_seconds),
  7. Trucs et astuces 2... Une série de ressources si tu es toujours bloqué :

Critères de validation

  • La liste contient 300 vélos
  • Des colonnes ont comme titre bike_number et duration_hours
  • Les vélos les plus utilisés sont les premiers de la liste
  • Le temps d'utilisation maximum est d’environ 175 heures
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment