Novo mês, novos objetivos. Sua ajuda ajuda o projeto a avançar. 🖥️ Apoie o sqltest →
Código SQL copiado para a área de transferência

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:

TabelaLinhasConteúdo
yellow_tripdata2.964.624corridas 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

yellow_tripdata - viagens de táxi amarelo.
  • 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.
Estrutura da tabela yellow_tripdata
Nome da colunaTipoNULLChavePadrãoExtra
VendorIDINTEGERYES[null][null][null]
tpep_pickup_datetimeTIMESTAMPYES[null][null][null]
tpep_dropoff_datetimeTIMESTAMPYES[null][null][null]
passenger_countBIGINTYES[null][null][null]
trip_distanceDOUBLEYES[null][null][null]
RatecodeIDBIGINTYES[null][null][null]
store_and_fwd_flagVARCHARYES[null][null][null]
PULocationIDINTEGERYES[null][null][null]
DOLocationIDINTEGERYES[null][null][null]
payment_typeBIGINTYES[null][null][null]
fare_amountDOUBLEYES[null][null][null]
extraDOUBLEYES[null][null][null]
mta_taxDOUBLEYES[null][null][null]
tip_amountDOUBLEYES[null][null][null]
tolls_amountDOUBLEYES[null][null][null]
improvement_surchargeDOUBLEYES[null][null][null]
total_amountDOUBLEYES[null][null][null]
congestion_surchargeDOUBLEYES[null][null][null]
Airport_feeDOUBLEYES[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_datetimeminutestrip_distancetotal_amount
2024-01-01 00:00:0020.311.25
2024-01-01 00:00:0241.5716.32
2024-01-01 00:00:0330.57.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_flagtrips
N2813126
NULL140162
Y11336

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:

  1. Estatísticas Gerais da Viagem
  2. Tarifa Média por Tipo de Pagamento
  3. Viagens Mais Longas
  4. Estatísticas Mensais
  5. Zonas de Coleta Mais Populares
  6. Comparar Gorjetas por Tipo de Pagamento
  7. Principais Zonas de Coleta por Mês
  8. Análise de Viagens de Passageiros
  9. Eficiência de Viagens por Faixa de Distância
  10. 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.