SQL - Group By vs Order By (ID)

Hai, para penggemar SQL yang sedang berkembang! Hari ini, kita akan mendalami dua klausal penting dalam SQL: Group By dan Order By. Sebagai guru komputer di lingkungan sekitar Anda, saya sangat gembira untuk mengarahkan Anda melalui konsep ini. Jangan khawatir jika Anda baru saja memulai programming - kita akan mulai dari dasar dan menaikkan tingkatnya. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), 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 organisator yang membantu untuk data Anda. Bayangkan Anda memiliki lemari pakaian yang kacau. Group By membantu Anda mengatur pakaian tersebut menjadi beberapa punggung 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 yang kita ambil data nya DARI.
  • Bagian GROUP BY memberitahu SQL kolom mana yang akan 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 penjualan total untuk setiap produk. Berikut apa yang terjadi:

  1. Kita SELECT product_name dan SUM quantity_sold.
  2. Kita mengambil 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. Misalnya, 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 kita, Order By seperti mengatur pakaian dari yang paling ringan ke paling gelap atau dari yang paling pendek ke paling panjang. Ini 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 penjualan total 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 terlebih dahulu berdasarkan nama produk (huruf A ke Z).
  3. Kemudian mengurutkan berdasarkan total harian (tertinggi ke terendah) dalam setiap kelompok produk.

Group By vs Order By

Sekarang kita telah melihat 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 (meringkas) 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 keluaran

Kapan Menggunakan Group By

Gunakan Group By ketika Anda ingin:

  • Meringkasan 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 ketika Anda ingin:

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

Contoh 5: Menggabungkan Group By dan Order By

Mari kita gabungkan semua dengan contoh akhir. Misalnya, kita ingin menemukan 3 produk penjualan teratas 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 penjualan total untuk setiap produk dalam setiap bulan.
  3. Mengurutkan hasilnya berdasarkan bulan (naik) dan kemudian penjualan total (turun).
  4. Batasi output menjadi 3 produk teratas untuk setiap bulan.

Dan itu adalah semua! Kita telah melintasi 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 may your data always be well-organized and perfectly sorted!

Credits: Image by storyset