Kapan Anda menggunakan yang mana secara umum? Teladan sangat dianjurkan!
Saya merujuk begitu MySql, tetapi tidak bisa membayangkan konsepnya berbeda di DBMS lain
ORDER BY mengubah urutan pengembalian item.
GROUP BY akan menggabungkan record berdasarkan kolom tertentu yang memungkinkan Anda menjalankan fungsi agregasi pada kolom yang tidak dikelompokkan (seperti SUM, COUNT, AVG, dll).
ORDER BY mengubah urutan pengembalian item.
GROUP BY akan menggabungkan record berdasarkan kolom tertentu yang memungkinkan Anda menjalankan fungsi agregasi pada kolom yang tidak dikelompokkan (seperti SUM, COUNT, AVG, dll).
sumber
age
kolom, dengan Peters memiliki usia yang berbeda dan querynya adalah PILIH NAMA, USIA DARI KELOMPOK TABEL BERDASARKAN NAMA?ORDER BY: mengurutkan data dalam urutan naik atau turun.
Pertimbangkan tabel CUSTOMERS :
Berikut ini adalah contoh yang akan mengurutkan hasil dalam urutan menaik menurut NAME:
Ini akan menghasilkan hasil sebagai berikut:
GROUP BY: menyusun data yang identik ke dalam kelompok.
Sekarang, tabel CUSTOMERS memiliki record berikut dengan nama duplikat:
Jika Anda ingin mengelompokkan nama yang identik menjadi satu nama, maka kueri GROUP BY adalah sebagai berikut:
Ini akan menghasilkan hasil sebagai berikut: (untuk nama yang identik ia akan memilih yang terakhir dan akhirnya mengurutkan kolom dalam urutan menaik)
seperti yang Anda simpulkan bahwa itu tidak ada gunanya tanpa fungsi SQL seperti sum, avg dll ..
jadi pelajari definisi ini untuk memahami penggunaan yang tepat dari GROUP BY:
Sekarang, jika Anda ingin mengetahui jumlah total gaji pada setiap pelanggan (nama), maka query GROUP BY adalah sebagai berikut:
Ini akan menghasilkan hasil sebagai berikut: (jumlah gaji dari nama yang identik dan urutkan kolom NAMA setelah menghapus nama yang identik)
sumber
Perbedaannya persis seperti namanya: grup dengan melakukan operasi pengelompokan, dan urutan berdasarkan jenis.
Jika kamu melakukan
SELECT * FROM Customers ORDER BY Name
maka Anda mendapatkan daftar hasil yang diurutkan berdasarkan nama pelanggan.Jika Anda melakukannya,
SELECT IsActive, COUNT(*) FROM Customers GROUP BY IsActive
Anda mendapatkan jumlah pelanggan aktif dan tidak aktif. Kelompokkan dengan mengumpulkan hasil berdasarkan bidang yang Anda tentukan.sumber
Mereka memiliki arti yang sangat berbeda dan tidak benar-benar berhubungan sama sekali.
DIPESAN OLEH memungkinkan Anda mengurutkan hasil menurut kriteria yang berbeda, seperti urutan pertama menurut nama dari az, lalu mengurutkan menurut harga tertinggi hingga terendah.
(ORDER BY nama, DESC harga)
GROUP BY memungkinkan Anda untuk mengambil set hasil Anda, mengelompokkannya ke dalam grup logis dan kemudian menjalankan kueri agregat pada grup tersebut. Misalnya, Anda dapat memilih semua karyawan, mengelompokkan mereka berdasarkan lokasi tempat kerja mereka dan menghitung gaji rata-rata semua karyawan di setiap lokasi kerja.
sumber
Sederhana,
ORDER BY
mengurutkan data danGROUP BY
mengelompokkan, atau menggabungkan data.ORDER BY
mengurutkan hasil yang ditetapkan sesuai bidang yang disebutkan, secara default dalam urutan menaik.Misalkan Anda menjalankan kueri karena
ORDER BY (student_roll_number)
, ini akan menunjukkan kepada Anda hasil dalam urutan menaik nomor gulungan siswa. Sini,student_roll_number
entri mungkin terjadi lebih dari sekali.Dalam
GROUP BY
kasus ini, kami menggunakan ini dengan fungsi agregat, dan ini mengelompokkan data sesuai fungsi agregat, dan kami mendapatkan hasilnya. Di sini, jika kueri kami memilikiSUM (marks)
bersama,GROUP BY (student_first_name)
itu akan menunjukkan jumlah nilai siswa yang termasuk dalam setiap grup (di mana semua anggota grup akan memiliki nama depan yang sama).sumber
GROUP BY digunakan untuk mengelompokkan baris dalam pemilihan, biasanya saat menggabungkan baris (misalnya menghitung total, rata-rata, dll. Untuk satu set baris dengan nilai yang sama untuk beberapa bidang).
ORDER BY digunakan untuk mengurutkan baris yang dihasilkan dari pernyataan pilih.
sumber
Beberapa contoh bagus di sana. Sama seperti menambahkan milik saya dari webcheatsheet yang memberikan contoh jelas yang bagus, serta membiarkan Anda menjalankan SQL Anda sendiri.
SQL Order By
SQL Group Oleh
sumber
ORDER BY
menunjukkan bidang dalam urutan menaik atau menurun. SementaraGROUP BY
menunjukkan nama bidang yang sama, id dll hanya dalam satu keluaran.sumber
sumber
Perlu dicatat bahwa
GROUP BY
tidak selalu diperlukan karena (setidaknya di PostgreSQL, dan kemungkinan dalam varian SQL lainnya) Anda dapat menggunakanORDER BY
daftar dan Anda masih dapat menggunakanASC
atauDESC
per kolom ...sumber