SQLite - klausa HAVING: Menjawar Penapisan Data Lanjut
Hai sana, para ahli pangkalan data masa depan! Hari ini, kita akan melihat salah satu alat paling kuat di dalam kotak peralatan SQLite Anda: klausa HAVING. Sediakan diri Anda, karena pada akhir pelajaran ini, Anda akan menapis data seperti seorang profesional!
Apa Itu Klausa HAVING?
Sebelum kita masuk ke hal yang mendalam, mari kita menyiapkan panggung. Bayangkan Anda adalah manajer dari sebuah toko es krim yang sibuk. Anda memiliki data tentang semua rasa, penjualan, dan preferensi pelanggan Anda. Sekarang, Anda ingin menganalisis data ini untuk membuat beberapa keputusan bisnis cerdas. Itu di mana klausa HAVING berguna!
Klausa HAVING seperti seorang bouncer di sebuah klub eksklusif. Dia berdiri di depan pintu, memeriksa ID (dalam kasus ini, memeriksa data), dan hanya membiarkan masuk VIP (data yang memenuhi kriteria khusus kami). Itu sangat berguna ketika kita ingin menapis data berdasarkan hasil fungsi agregat.
Sintaks: Grammar Klausa HAVING
Mari kitaura sintaks klausa HAVING:
SELECT column1, column2, ...
FROM table_name
GROUP BY column1, column2, ...
HAVING condition;
Jangan khawatir jika ini terlihat seperti sup abjad saat ini. Kita akan membongkarannya bagian per bagian:
-
SELECT
: Ini adalah tempat kita memilih kolom mana yang kita ingin lihat. -
FROM
: Ini menentukan tabel mana kita mendapatkan data kita. -
GROUP BY
: Ini mengelompokkan data kita berdasarkan satu atau lebih kolom. -
HAVING
: Ini adalah bouncer kita, menapis kelompok berdasarkan syarat.
Hal penting yang perlu diingat adalah klausa HAVING datang setelah GROUP BY
. Itu seperti makanan penutup - Anda tidak bisa mendapatkannya sebelum makan utama!
HAVING vs. WHERE: Duo Dinamik
Sekarang, Anda mungkin berpikir, "Tunggu sebentar, WHERE juga menapis data?" Tebakan baik! Anda sungguh benar. TAPI, ada perbedaan penting:
- WHERE menapis baris individual sebelum mereka digabungkan.
- HAVING menapis kelompok setelah baris telah digabungkan.
Pikirkan seperti ini: WHERE seperti memilih apel bagus sebelum Anda memasukkannya ke keranjang, sedangkan HAVING seperti memeriksa setiap keranjang apel untuk memastikan itu memenuhi standar Anda.
Waktu Contoh: Mari Ambil Beberapa Data!
Baiklah, mari kita aplikasikan pengetahuan ini ke dalam situasi toko es krim kita. Kita akan membuat tabel sederhana dan kemudian menggunakan klausa HAVING untuk menganalisis data kita.
Pertama-tama, mari kita buat tabel kita:
CREATE TABLE ice_cream_sales (
flavor TEXT,
scoops_sold INTEGER,
price REAL
);
INSERT INTO ice_cream_sales (flavor, scoops_sold, price)
VALUES
('Vanilla', 100, 2.50),
('Chocolate', 150, 2.75),
('Strawberry', 75, 3.00),
('Mint Chip', 50, 3.25),
('Chocolate', 125, 2.75),
('Vanilla', 80, 2.50);
Sekarang, mari kita katakan bahwa kita ingin menemukan rasa mana saja yang terjual lebih dari 100 es krim secara total. Di sini HAVING berjalan:
SELECT flavor, SUM(scoops_sold) as total_scoops
FROM ice_cream_sales
GROUP BY flavor
HAVING total_scoops > 100;
mari kitaura ini:
- Kita SELECT rasa dan penjualan total es krim (yang kita namai 'total_scoops').
- Kita GROUP BY rasa untuk menggabungkan penjualan untuk setiap rasa.
- Kita menggunakan HAVING untuk menapis kelompok (rasa) yang tidak memiliki penjualan total lebih dari 100 es krim.
Hasilnya mungkin terlihat seperti ini:
rasa | total_scoops |
---|---|
Chocolate | 275 |
Vanilla | 180 |
Voila! Kita dapat melihat bahwa Chocolate dan Vanilla adalah performa utama kita, menjual lebih dari 100 es krim masing-masing.
Contoh Lanjut: Menggabungkan HAVING dengan WHERE
Sekarang, mari kita tingkatkan. Apa bila kita ingin menemukan rasa yang menjual lebih dari 100 es krim, tetapi hanya menghitung es krim yang dijual dengan harga lebih dari $2.60?
SELECT flavor, SUM(scoops_sold) as total_scoops
FROM ice_cream_sales
WHERE price > 2.60
GROUP BY flavor
HAVING total_scoops > 100;
Dalam query ini:
- WHERE menapis keluar baris mana saja dengan harga $2.60 atau kurang.
- Kita kemudian GROUP BY rasa dan menjumlahkan
scoops_sold
. - Akhirnya, HAVING menapis keluar kelompok dengan 100 atau kurang penjualan total.
Hasilnya mungkin adalah:
rasa | total_scoops |
---|---|
Chocolate | 275 |
Chocolate tetap menjadi juara, sedangkan Vanilla tidak masuk kriteria karena harga nya di bawah $2.60.
Kesimpulan: Superpower Penapisan Data Baru Anda
Dan di sana Anda punya nya, teman-teman! Anda baru saja membuka level baru dalam perjalanan SQLite Anda. Klausa HAVING seperti sebuah pisau multifungsi di dalam peralatan analisis data Anda - multifungsi, kuat, dan sangat berguna ketika Anda ingin menggali lebih mendalam ke dalam data kelompok Anda.
Ingat, latihan membuat sempurna. Cobalah membuat tabel Anda sendiri dan eksperimen dengan berbagai syarat HAVING. Sebelum Anda tahu, Anda akan memotong dan memotong data seperti seorang chef pangkalan data berpengalaman!
Terus coding, terus belajar, dan terutama, terus bersenang-senang dengan data! Siapa tahu? Mungkin suatu hari Anda akan menggunakan keterampilan ini untuk revolusi industri es krim. Sampaijumpa lagi, senang berkueri!
Credits: Image by storyset