Lesson 02 / Advanced Querying
CTE
Membuat hasil sementara bernama dengan WITH.
EST. 20 MIN
Common Table Expression
CTE memakai WITH untuk memberi nama pada hasil sementara. Ini membuat query panjang lebih mudah dibaca dan diuji bertahap.
Tujuan belajar
Setelah lesson ini, kamu dapat menyusun hasil sementara bernama dengan WITH dan menggunakannya pada query akhir yang lebih mudah dibaca.
WITH city_sales AS (
SELECT stores.city, SUM(sales.total_amount) AS total_sales
FROM sales
JOIN stores ON stores.store_id = sales.store_id
GROUP BY stores.city
)
SELECT *
FROM city_sales;
CTE hanya hidup selama query tersebut berjalan, bukan tabel permanen di database.
Query panjang menjadi langkah bernama
CTE memisahkan query menjadi langkah yang dapat dibaca seperti konsep bisnis.
WITH city_sales AS (
SELECT stores.city, SUM(sales.total_amount) AS total_sales
FROM sales
JOIN stores ON stores.store_id = sales.store_id
GROUP BY stores.city
)
SELECT city, total_sales
FROM city_sales
WHERE total_sales > 1000000
ORDER BY total_sales DESC;
Beberapa CTE dipisahkan dengan koma. Pakai nama yang menjelaskan isi data, seperti completed_orders atau monthly_revenue.
Coba sendiri
Buat CTE city_sales dari tabel sales dan stores, lalu tampilkan kota dan total penjualan dari yang terbesar. Kerjakan agregasi di CTE, bukan di query akhir.
Jebakan umum
CTE tidak menyimpan hasil untuk query berikutnya. Ia adalah alat untuk struktur dan keterbacaan dalam satu perintah SQL.
Practice
Latihan
01 EXERCISE
-
EXERCISE 01 / GUIDED_PRACTICE
Susun total penjualan per kota
Buat CTE bernama city_sales yang menggabungkan sales dan stores, lalu tampilkan kota serta total penjualannya dari yang terbesar.
- FOCUS
- Common table expression
- DATASET
- Retail
- ESTIMATED MINUTES
- 8
Practice workspace
Tulis dan jalankan query
Menyiapkan SQL runtime...
Dataset: Retail. Query berjalan lokal di browser.
Hasil query
0 ROWS
Jalankan query untuk menampilkan hasil di sini.
Masuk untuk menandai latihan selesai.