DataLens

Proyek SQL: query laporan Toko Kita

Tiga query bernilai pada database asli toko. Temukan pelanggan terbaik untuk kampanye terima kasih, buat laporan pendapatan bulanan dengan running total, dan tulis laporan restock yang dicek gudang setiap Senin.

Proyek jalur

Buka proyeknya

Brief yang realistis dan tugas bernilai yang memakai seluruh jalur. Termasuk dalam Pro.

Brief-nya

Toko Kita adalah toko online kecil di Indonesia yang menjual kopi, peralatan dapur, alat tulis, perlengkapan rumah, dan beberapa barang elektronik. Semua pesanannya tersimpan di database PostgreSQL, dan selama ini satu-satunya cara mendapatkan angka dari sana adalah bertanya ke satu orang yang tahu letak semuanya. Kamu baru saja bergabung, dan tiga tim masing-masing sudah mengirim permintaan.

Tim marketing ingin daftar pelanggan terbaik mereka. Pemilik toko ingin laporan pendapatan bulanan yang menunjukkan bagaimana tahun ini terbangun bulan demi bulan. Dan gudang ingin daftar pendek setiap Senin berisi produk yang perlu diperhatikan. Masing-masing cukup satu query, tapi masing-masing butuh beberapa hal dari track SQL bekerja bersama: join, grouping, CTE, window function, dan CASE.

Cara kerja tugas-tugasnya

Setiap tugas dicek otomatis, seperti soal-soal modul: query-mu dijalankan pada database toko dan hasilnya harus cocok, termasuk nama kolom dan urutan barisnya. Tiketnya memberi tahu seperti apa hasilnya, bukan cara menulis query-nya. Ada petunjuk kalau kamu buntu, tapi coba setiap tugas tanpa membuka solusinya dulu.

Tugas-tugasnya

#TugasKeterampilan utama
1Pelanggan terbaikJoin, GROUP BY, CTE, ROUND dan cast
2Pendapatan bulanan dengan running totalGrouping per bulan, window function (SUM() OVER, LAG)
3Laporan restock hari SeninLEFT JOIN, COALESCE, CASE, filter pada kolom hasil hitungan

Database-nya

Ini empat tabel yang dipakai tugas-tugasnya:

TabelKolom
customerscustomer_id, name, email, city, signup_date, segment
productsproduct_id, name, category, price, cost, stock
ordersorder_id, customer_id, order_date, status, channel
order_itemsorder_id, product_id, quantity, unit_price

Satu pesanan punya satu baris di orders dan satu baris di order_items untuk setiap produk di dalamnya. Uang untuk satu item adalah quantity * unit_price, memakai harga saat pesanan dibuat (yang tidak selalu sama dengan products.price hari ini). status sebuah pesanan adalah completed, shipped, pending, atau cancelled, dan hanya pesanan completed yang dihitung sebagai penjualan di laporan-laporan ini. Satu hal lagi yang perlu diperhatikan: products.stock bernilai NULL untuk produk yang belum pernah dihitung siapa pun.

Kalau sudah siap, buka Task 1.

Buka proyeknya

Brief yang realistis dan tugas bernilai yang memakai seluruh jalur. Termasuk dalam Pro.