Conjunto de dados NYC Yellow Taxi (DuckDB): a tabela yellow_tripdata e exercícios de SQL
yellow_tripdata reúne as corridas dos táxis amarelos de Nova York em janeiro de 2024, quase 3 milhões de linhas, carregadas no DuckDB para SQL analítico. No SQLtest.online você consulta os dados direto no navegador: resolve exercícios com correção automática e executa suas próprias consultas no playground, sem instalar nada.
- 1 tabela, 19 colunas
- 2.964.624 corridas
- janeiro de 2024
- 19 exercícios de SQL
O que é o NYC Yellow Taxi
Os dados vêm dos registros de corridas que a Comissão de Táxis e Limusines de Nova York (TLC) publica todo mês. Cada linha é uma corrida: horário de embarque e desembarque, distância, número de passageiros, zonas de embarque e desembarque, forma de pagamento e cada parte da tarifa.
O DuckDB é um banco analítico embutido com armazenamento colunar, então agregações sobre milhões de linhas levam frações de segundo. Por isso o conjunto é ótimo para praticar análise de verdade: séries temporais, distribuições, percentis e limpeza de dados.
O que há no banco
Todos os dados estão em uma tabela, yellow_tripdata. Todas as colunas aceitam NULL, e não há chaves nem restrições. PULocationID e DOLocationID são números de zonas de táxi da TLC. Algumas corridas têm horário de embarque fora de janeiro de 2024 e outras têm valores zerados ou negativos: dados reais precisam de limpeza, e alguns exercícios tratam exatamente disso.
Quantos dados há nas tabelas:
| Tabela | Linhas | Conteúdo |
|---|---|---|
| yellow_tripdata | 2.964.624 | corridas dos táxis amarelos |
Estrutura das tabelas
Clique em uma tabela para ver suas colunas, uma linha de exemplo e as chaves.
Tabela yellow_tripdata
- VendorID identificador do fornecedor do serviço de táxi.
- tpep_pickup_datetime data e hora do embarque do passageiro.
- tpep_dropoff_datetime data e hora do desembarque do passageiro.
- passenger_count número de passageiros.
- trip_distance distância da viagem.
- RatecodeID identificador do código tarifário.
- store_and_fwd_flag indica que os dados da viagem foram armazenados antes do envio.
- PULocationID identificador da zona de embarque.
- DOLocationID identificador da zona de desembarque.
- payment_type identificador do método de pagamento.
- fare_amount valor da viagem sem cobranças adicionais.
- extra cobranças adicionais.
- mta_tax imposto MTA.
- tip_amount valor da gorjeta.
- tolls_amount valor dos pedágios.
- improvement_surcharge taxa para melhoria do sistema de transporte.
- total_amount custo total da viagem.
- congestion_surcharge taxa de congestionamento.
- Airport_fee taxa aeroportuária.
| Nome da coluna | Tipo | NULL | Chave | Padrão | Extra |
|---|---|---|---|---|---|
| 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] |
Exemplos de consultas
Estas consultas mostram como os dados se relacionam. Copie qualquer uma e execute no playground.
Duração da corrida: date_diff do DuckDB entre embarque e desembarque.
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 |
Uma contagem rápida: o GROUP BY ALL do DuckDB agrupa por todas as colunas não agregadas.
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 |
Exercícios de SQL por tema
Há 19 exercícios com este conjunto de dados, de estatísticas gerais a séries temporais e verificações de qualidade. As soluções são verificadas automaticamente em um DuckDB real. O número à direita é a quantidade de exercícios do tema; os pontos coloridos mostram a faixa de dificuldade.
Por onde começar
Os primeiros exercícios do banco NYC Yellow Taxi:
- Estatísticas Gerais da Viagem
- Tarifa Média por Tipo de Pagamento
- Viagens Mais Longas
- Estatísticas Mensais
- Zonas de Coleta Mais Populares
- Comparar Gorjetas por Tipo de Pagamento
- Principais Zonas de Coleta por Mês
- Análise de Viagens de Passageiros
- Eficiência de Viagens por Faixa de Distância
- Zonas com Custo por Milha Incomummente Alto
Todos os exercícios do NYC Yellow Taxi →
Perguntas frequentes
Preciso instalar o DuckDB para usar este conjunto de dados?
Não. Os exercícios e o playground do SQLtest.online executam as consultas nos nossos servidores, então basta um navegador. No playground, escolha DuckDB.
De onde vêm os dados?
Dos dados abertos da Comissão de Táxis e Limusines de Nova York (TLC), publicados mensalmente em arquivos Parquet. Esta cópia traz as corridas dos táxis amarelos de janeiro de 2024.
Em que o SQL do DuckDB é diferente?
Ele é próximo do PostgreSQL, com extras para análise como GROUP BY ALL, QUALIFY, date_diff e funções de quantis.