Menu
CoddyTech

Pengelompokan Bagian 2

Termasuk bagian Dasar-Dasar dalam perjalanan SQL di Coddy. Pelajaran 37 dari 72.

Kata kunci WHERE menerapkan kondisi pada setiap rekaman secara terpisah. Contohnya:

SELECT * FROM table1
WHERE col1 > col2

col1 > col2 akan dijalankan pada setiap rekaman untuk memeriksa apakah kondisinya terpenuhi.

Namun, bagaimana jika kita ingin memfilter hasil agregat? Contohnya:

SELECT category, AVG(price) FROM table1
WHERE AVG(price) > 40
GROUP BY category

Ini tidak akan berhasil karena WHERE tidak dapat memeriksa agregasi apa pun. Untuk itu, kita memiliki kata kunci HAVING. Kata kunci ini memfilter data berdasarkan kondisi agregat.

SELECT category, AVG(price) FROM table1
GROUP BY category
HAVING AVG(price) > 40

Ini akan memfilter semua kategori yang harga rata-ratanya lebih dari 40.

Jika kita ingin menggabungkan klausa HAVING dan WHERE, kita akan menulis:

SELECT category, AVG(price) FROM table1
WHERE price > 25
GROUP BY category
HAVING AVG(price) > 40

Proses ini akan memeriksa data satu per satu dan memfilter semua data yang harganya lebih dari 25, lalu setelah itu menjalankan klausa GROUP BY dan memfilter setiap kategori yang harga rata-ratanya lebih dari 40.

challenge icon

Tantangan

Sedang

Tabel dan kolom yang tersedia:

  • earthquakes: location, amplitude, period

Skala Richter adalah skala logaritmik yang digunakan untuk mengukur magnitudo gempa bumi.

Kita perlu mengembalikan magnitudo rata-rata untuk setiap lokasi dari semua gempa bumi besar.

Gempa bumi besar didefinisikan sebagai:

  • Amplitudonya lebih besar atau sama dengan 1
  • Periode gelombangnya lebih besar atau sama dengan 1 menit

Untuk tantangan ini, kita akan menggunakan rumus yang berbeda: M = (A/T)^2 / T, yang setara dengan M = ((A/T)*(A/T)) / T. Di sini, M adalah magnitudo, A adalah kolom amplitude, dan T adalah kolom period.

Kembalikan lokasi dan magnitudo rata-rata setiap lokasi, dengan hanya menyertakan gempa bumi besar (beri nama kolomnya avg_magnitude). Sertakan dalam hasil hanya lokasi dengan avg_magnitude lebih besar dari 1.

Bulatkan hasil hingga 2 angka di belakang koma.

Coba sendiri

quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground SQL