SQL Series
Business Question of New York CitiBike
Exploratory Data Analysis
Beberapa waktu lalu saya mengerjakan exploratory data menggunakan BigQuery sebagai salah satu persyaratan aplikasi pekerjaan Data Analyst. Berikut adalah catatan digital saya dalam penggunaan Advanced SQL yang semoga dapat menjadi referensi pribadi di kemudian hari.
Problem 1
Write a query to calculate the average trip duration per start_station_id on a monthly basis in 2018* and print the station_name. Sort by month ascending and average trip duration descending, then only print the first 5 rows. (Note: month and year filter should be extracted from the trip’s starttime)
Berikut adalah query yang digunakan:
Tipe kolom starttime diubah menjadi bentuk basis bulanan menggunakan fungsi FORMAT_DATETIME. Selain itu, fungsi EXTRACT digunakan untuk mengambil nilai tahunan dari kolom yang sama. Fungsi CTE (WITH) hanya digunakan untuk menyingkat nama tabel dataset yang panjang menjadi ‘trip’.
Problem 2
Write a query to pull the most favorite start station and end station for male customers in 2017. (Note: year filter should be extracted from the trip’s starttime)
Berikut adalah query yang digunakan:
Fungsi INNER JOIN digunakan untuk menggbungkan 2 kolom berbeda. Dalam hal ini stasiun tersibuk untuk start_station dan end_station bisa saja akan terletak pada baris yang berbeda. Bisa saja keduanya bukan stasiun yang sama. Maka dari itu, untuk mendapatkan hasil yang lebih valid digunakan fungsi tersebut.
Problem 3
Write a query to pull the top 3 stations with the most total trip duration each year, between 2015–2018. Sort by year ascending. For each year, rank these stations in the ascending order, with the 1st rank as the station with the most total trip duration. (Note: year filter should be extracted from the trip’s starttime)
Berikut adalah query yang digunakan:
Fungsi row_number dan OVER digunakan untuk menghasilkan perankingan urutan nama stasiun berdasarkan total_tripduration dalam setiap grup tahunan.
Semoga catatan ini bermanfaat.