Fungsi GROUP BY tanpa Fungsi Agregat
Memahami operasi GROUP BY boleh menjadi mencabar, terutamanya apabila mengecualikan fungsi agregat. Artikel ini menyelidiki konsep dan implikasinya.
Dalam contoh yang diberikan, anda cuba melaksanakan operasi GROUP BY pada jadual EMP tanpa fungsi agregat, mengakibatkan beberapa ralat. Mesej ralat, "bukan ungkapan GROUP BY," menunjukkan bahawa lajur yang dinyatakan dalam klausa GROUP BY mesti sepadan dengan lajur yang dipilih dalam pernyataan SELECT.
Untuk memahami mengapa ini perlu, adalah penting untuk memahami cara GROUP BY mengubah berbilang baris menjadi satu baris. Apabila menggabungkan baris, ia memerlukan panduan untuk mengendalikan lajur dengan nilai yang berbeza-beza. Oleh itu, setiap lajur yang anda sertakan dalam pernyataan SELECT mestilah sama ada:
Sebagai contoh, pertimbangkan jadual berikut:
Name | OrderNumber ------------------ John | 1 John | 2
Jika anda melaksanakan GROUP BY pada Nama sahaja, hasilnya memerlukan peraturan untuk memilih Nombor Pesanan. Pilihannya ialah:
Sertakan Nombor Pesanan dalam klausa GROUP BY: Ini menghasilkan dua baris:
Gunakan fungsi agregat:
Dengan memadankan lajur dalam pernyataan SELECT dan GROUP BY, Oracle memastikan manipulasi data yang konsisten dan mengelakkan kekaburan.
Atas ialah kandungan terperinci Mengapa Pertanyaan SQL `GROUP BY` Saya Tanpa Fungsi Agregat Mengembalikan Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!