SQL - Group By vs Order By

Hai, penggemar SQL yang bersemangat! Hari ini, kita akan mendalami dua klausal penting dalam SQL: Group By dan Order By. Sebagai guru komputer yang ramah di lingkungan sekitar Anda, saya sangat gembira untuk mengantar Anda melalui konsep ini. Jangan khawatir jika Anda baru belajar pemrograman - kita akan mulai dari dasar dan kemudian naik tingkat. Jadi, ambil secangkir kopi (atau teh, jika itu hal yang Anda sukai), dan mari kita mulai petualangan SQL kami!

SQL - Group By vs Order By

Klausal SQL Group By

Apa Itu Group By?

Klausal Group By adalah seperti seorang organizer yang membantu untuk data Anda. Bayangkan Anda memiliki lemari pakaian yang kacau. Group By membantu Anda mengatur pakaian tersebut menjadipiring rapi berdasarkan karakteristik tertentu - seperti warna atau jenis pakaian.

Dalam istilah SQL, Group By memungkinkan Anda mengatur data Anda menjadi kelompok berdasarkan satu atau lebih kolom. Ini sangat berguna ketika Anda ingin melakukan perhitungan atau ringkasan atas kelompok ini.

Sintaks Dasar

Ini adalah struktur dasar klausal Group By:

SELECT column1, column2, aggregate_function(column3)
FROM table_name
GROUP BY column1, column2;

mari kitauraikan ini:

  • Kita SELECT kolom yang kita ingin lihat dalam hasilnya.
  • Kita menentukan tabel mana kita mendapatkan data DARI.
  • Bagian GROUP BY memberitahu SQL tentang kolom mana yang digunakan untuk pengelompokan.

Contoh 1: Pengelompokan Penjualan Berdasarkan Produk

Bayangkan kita memiliki tabel sales dengan kolom: product_name, quantity_sold, dan sale_date. mari kita kelompokkan penjualan kita berdasarkan produk:

SELECT product_name, SUM(quantity_sold) as total_sold
FROM sales
GROUP BY product_name;

Query ini akan menunjukkan jumlah total penjualan untuk setiap produk. Ini adalah apa yang terjadi:

  1. Kita SELECT product_name dan SUM quantity_sold.
  2. Kita mendapatkan data ini DARI tabel sales.
  3. Kita GROUP BY product_name, sehingga SQL akan membuat kelompok untuk setiap produk yang unik.

Hasilnya mungkin terlihat seperti ini:

product_name total_sold
Apple 150
Banana 200
Orange 175

Contoh 2: Pengelompokan Berganda

Kita juga dapat mengelompokkan berdasarkan beberapa kolom. mari kita katakan kita ingin mengelompokkan penjualan kita berdasarkan produk dan tanggal:

SELECT product_name, sale_date, SUM(quantity_sold) as daily_total
FROM sales
GROUP BY product_name, sale_date;

Query ini mengelompokkan penjualan kita berdasarkan produk dan tanggal, menunjukkan total harian untuk setiap produk.

Klausal SQL Order By

Apa Itu Order By?

Jika Group By adalah organisator lemari pakaian kami, Order By seperti mengatur pakaian dari terang ke gelap atau terpendek ke terpanjang. Semua tentang pengurutan data kita dalam urutan tertentu.

Sintaks Dasar

Struktur dasar klausal Order By adalah:

SELECT column1, column2
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC];
  • ASC berarti urutan naik (terkecil ke terbesar, atau A ke Z).
  • DESC berarti urutan turun (terbesar ke terkecil, atau Z ke A).
  • Jika Anda tidak menentukan, SQL menganggap ASC secara default.

Contoh 3: Pengurutan Produk Berdasarkan Penjualan

mari kita urutkan produk berdasarkan penjualan total mereka:

SELECT product_name, SUM(quantity_sold) as total_sold
FROM sales
GROUP BY product_name
ORDER BY total_sold DESC;

Query ini melakukan hal berikut:

  1. Mengelompokkan penjualan berdasarkan produk.
  2. Menghitung total penjualan untuk setiap produk.
  3. Mengurutkan hasilnya dari yang tertinggi ke yang terendah.

Hasilnya mungkin terlihat seperti ini:

product_name total_sold
Banana 200
Orange 175
Apple 150

Contoh 4: Pengurutan Berganda

Kita juga dapat mengurutkan berdasarkan beberapa kolom:

SELECT product_name, sale_date, SUM(quantity_sold) as daily_total
FROM sales
GROUP BY product_name, sale_date
ORDER BY product_name ASC, daily_total DESC;

Query ini:

  1. Mengelompokkan penjualan berdasarkan produk dan tanggal.
  2. Mengurutkan pertama-tama berdasarkan nama produk (secara alfabetis).
  3. Kemudian mengurutkan berdasarkan total harian (tertinggi ke terendah) dalam setiap kelompok produk.

Group By vs Order By

Sekarang kita telah melihat kedua Group By dan Order By dalam aksi, mari kita bandingkan mereka:

Fitur Group By Order By
Tujuan Mengatur data menjadi kelompok Mengurutkan data dalam urutan tertentu
Penggunaan Digunakan dengan fungsi agregat Dapat digunakan dengan atau tanpa agregat
Hasil Mengurangi jumlah baris (meringkasan) Tidak mengubah jumlah baris
Posisi Muncul sebelum ORDER BY dalam query Muncul setelah GROUP BY (jika ada)
Fungsionalitas Membuat kelompok untuk perhitungan agregat Menentukan urutan baris output

Kapan Menggunakan Group By

Gunakan Group By saat Anda ingin:

  • Mengringkasan data (seperti mendapatkan total atau rata-rata untuk setiap kelompok).
  • Melakukan perhitungan atas kelompok data.
  • Mengurangi jumlah baris dalam hasil Anda.

Kapan Menggunakan Order By

Gunakan Order By saat Anda ingin:

  • Mengurutkan hasil Anda dalam urutan tertentu (naik atau turun).
  • Menyajikan data dalam urutan yang mudah dibaca atau logis.
  • Menemukan nilai teratas atau terbawah dalam data Anda.

Contoh 5: Menggabungkan Group By dan Order By

mari kita gabungkan semua dengan contoh akhir. mari kita katakan kita ingin menemukan 3 produk terlaris untuk setiap bulan:

SELECT
EXTRACT(MONTH FROM sale_date) as month,
product_name,
SUM(quantity_sold) as total_sold
FROM
sales
GROUP BY
EXTRACT(MONTH FROM sale_date), product_name
ORDER BY
month ASC, total_sold DESC
LIMIT 3;

Query ini:

  1. Mengelompokkan penjualan berdasarkan bulan dan produk.
  2. Menghitung total penjualan untuk setiap produk dalam setiap bulan.
  3. Mengurutkan hasilnya berdasarkan bulan (naik) dan kemudian total penjualan (turun).
  4. Batasi output ke 3 produk terlaris untuk setiap bulan.

Dan itu adalah! Kita telah menjelajahi wilayah Group By dan Order By. Ingat, latihan membuat sempurna, jadi jangan khawatir untuk mencoba klausal ini dalam query Anda sendiri. Selamat belajar SQL, dan semoga data Anda selalu teratur dan terurut!

Credits: Image by storyset