Jeu de données NYC Yellow Taxi (DuckDB) : la table yellow_tripdata et des exercices SQL
yellow_tripdata contient les courses des taxis jaunes de New York de janvier 2024, près de 3 millions de lignes, chargées dans DuckDB pour du SQL analytique. Sur SQLtest.online, vous les interrogez directement dans le navigateur : vous résolvez des exercices corrigés automatiquement et exécutez vos propres requêtes dans le bac à sable, sans rien installer.
- 1 table, 19 colonnes
- 2 964 624 courses
- janvier 2024
- 19 exercices SQL
Qu'est-ce que NYC Yellow Taxi
Les données proviennent des relevés de courses que la Taxi and Limousine Commission de New York (TLC) publie chaque mois. Chaque ligne est une course : heures de prise en charge et de dépose, distance, nombre de passagers, zones de départ et d'arrivée, mode de paiement et chaque composante du prix.
DuckDB est une base analytique embarquée à stockage en colonnes : les agrégations sur des millions de lignes s'exécutent en une fraction de seconde. Le jeu de données se prête donc à une vraie analyse : séries temporelles, distributions, percentiles et nettoyage des données.
Contenu de la base
Toutes les données sont dans une seule table, yellow_tripdata. Toutes les colonnes acceptent NULL, sans clé ni contrainte. PULocationID et DOLocationID sont des numéros de zones de taxi de la TLC. Quelques courses ont une heure de départ hors de janvier 2024 et certaines ont des montants nuls ou négatifs : les vraies données doivent être nettoyées, et certains exercices portent justement là-dessus.
Volume de données des tables :
| Table | Lignes | Contenu |
|---|---|---|
| yellow_tripdata | 2 964 624 | courses des taxis jaunes |
Structure des tables
Cliquez sur une table pour voir ses colonnes, une ligne d'exemple et ses clés.
Table yellow_tripdata
- VendorID identifiant du fournisseur du service de taxi.
- tpep_pickup_datetime date et heure de prise en charge du passager.
- tpep_dropoff_datetime date et heure de dépose du passager.
- passenger_count nombre de passagers.
- trip_distance distance du trajet.
- RatecodeID identifiant du tarif.
- store_and_fwd_flag indique que les données du trajet ont été stockées avant leur transmission.
- PULocationID identifiant de la zone de prise en charge.
- DOLocationID identifiant de la zone de dépose.
- payment_type identifiant du mode de paiement.
- fare_amount prix du trajet hors frais supplémentaires.
- extra frais supplémentaires.
- mta_tax taxe MTA.
- tip_amount montant du pourboire.
- tolls_amount montant des péages.
- improvement_surcharge contribution à l'amélioration du réseau de transport.
- total_amount coût total du trajet.
- congestion_surcharge contribution pour la congestion.
- Airport_fee frais d'aéroport.
| Nom de la colonne | Type | NULL | Clé | Valeur par défaut | Informations supplémentaires |
|---|---|---|---|---|---|
| VendorID | INTEGER | YES | [null] | [null] | [null] |
| tpep_pickup_datetime | TIMESTAMP | YES | [null] | [null] | [null] |
| tpep_dropoff_datetime | TIMESTAMP | YES | [null] | [null] | [null] |
| passenger_count | BIGINT | YES | [null] | [null] | [null] |
| trip_distance | DOUBLE | YES | [null] | [null] | [null] |
| RatecodeID | BIGINT | YES | [null] | [null] | [null] |
| store_and_fwd_flag | VARCHAR | YES | [null] | [null] | [null] |
| PULocationID | INTEGER | YES | [null] | [null] | [null] |
| DOLocationID | INTEGER | YES | [null] | [null] | [null] |
| payment_type | BIGINT | YES | [null] | [null] | [null] |
| fare_amount | DOUBLE | YES | [null] | [null] | [null] |
| extra | DOUBLE | YES | [null] | [null] | [null] |
| mta_tax | DOUBLE | YES | [null] | [null] | [null] |
| tip_amount | DOUBLE | YES | [null] | [null] | [null] |
| tolls_amount | DOUBLE | YES | [null] | [null] | [null] |
| improvement_surcharge | DOUBLE | YES | [null] | [null] | [null] |
| total_amount | DOUBLE | YES | [null] | [null] | [null] |
| congestion_surcharge | DOUBLE | YES | [null] | [null] | [null] |
| Airport_fee | DOUBLE | YES | [null] | [null] | [null] |
Exemples de requêtes
Ces requêtes montrent comment les données sont reliées. Copiez-en une et exécutez-la dans le bac à sable.
Durée de la course : date_diff de DuckDB entre la prise en charge et la dépose.
SELECT tpep_pickup_datetime,
date_diff('minute', tpep_pickup_datetime, tpep_dropoff_datetime) AS minutes,
trip_distance, total_amount
FROM yellow_tripdata
WHERE tpep_pickup_datetime >= '2024-01-01'
ORDER BY tpep_pickup_datetime
LIMIT 3;
| tpep_pickup_datetime | minutes | trip_distance | total_amount |
|---|---|---|---|
| 2024-01-01 00:00:00 | 2 | 0.3 | 11.25 |
| 2024-01-01 00:00:02 | 4 | 1.57 | 16.32 |
| 2024-01-01 00:00:03 | 3 | 0.5 | 7.6 |
Un comptage rapide : le GROUP BY ALL de DuckDB regroupe par toutes les colonnes non agrégées.
SELECT store_and_fwd_flag, COUNT(*) AS trips
FROM yellow_tripdata
GROUP BY ALL
ORDER BY trips DESC;
| store_and_fwd_flag | trips |
|---|---|
| N | 2813126 |
| NULL | 140162 |
| Y | 11336 |
Exercices SQL par thème
Ce jeu de données compte 19 exercices, des statistiques globales jusqu'aux séries temporelles et aux contrôles de qualité. Les solutions sont vérifiées automatiquement sur un vrai DuckDB. Le nombre à droite indique combien d'exercices compte le thème ; les points colorés montrent la plage de difficulté.
Par où commencer
Les premiers exercices sur la base NYC Yellow Taxi :
- Statistiques Globales des Voyages
- Tarif Moyen par Type de Paiement
- Les voyages les plus longs
- Statistiques Mensuelles
- Zones de Prise en Charge les Plus Populaires
- Comparer les pourboires par type de paiement
- Zones de Ramassage Principales par Mois
- Analyse des trajets des passagers
- Efficacité des trajets par plage de distance
- Zones avec un coût par mile inhabituellement élevé
Tous les exercices NYC Yellow Taxi →
Questions fréquentes
Faut-il installer DuckDB pour utiliser ce jeu de données ?
Non. Les exercices et le bac à sable de SQLtest.online exécutent les requêtes sur nos serveurs : un navigateur suffit. Dans le bac à sable, choisissez DuckDB.
D'où viennent les données ?
Des données ouvertes de la Taxi and Limousine Commission de New York (TLC), publiées chaque mois au format Parquet. Cette copie contient les courses des taxis jaunes de janvier 2024.
En quoi le SQL de DuckDB est-il différent ?
Il est proche de PostgreSQL, avec des ajouts pour l'analyse comme GROUP BY ALL, QUALIFY, date_diff et des fonctions de quantiles.