Menyingkap Misteri "GROUP BY 1": Panduan Pengumpulan SQL
Apabila bekerja dengan data, adalah perkara biasa untuk menghadapi situasi di mana anda perlu mengumpulkan baris berdasarkan lajur tertentu. Klausa SQL GROUP BY menyediakan cara yang berkesan untuk melakukan ini. Walau bagaimanapun, apakah yang berlaku apabila klausa GROUP BY mengandungi pernyataan yang membingungkan seperti "GROUP BY 1"?
The Puzzling "GROUP BY 1"
Setelah menerima pertanyaan SQL dengan klausa GROUP BY yang terdiri daripada "GROUP BY 1", anda mungkin berhak menganggapnya kesilapan menaip. Lagipun, tiada lajur diberikan alias "1" secara eksplisit. Jadi, apakah maksud kenyataan yang kelihatan samar ini?
Menyelesaikan Misteri
Bertentangan dengan kepercayaan popular, "GROUP BY 1" bukanlah kesilapan menaip. Ia berfungsi untuk tujuan tertentu:
Pengumpulan Mengikut Kedudukan:
Nombor dalam klausa GROUP BY merujuk kepada kedudukan lajur dalam set hasil. Dalam kes ini, "1" mewakili lajur pertama. Ini bermakna pertanyaan akan mengumpulkan baris berdasarkan nilai dalam lajur pertama, tanpa mengira nama atau aliasnya.
Teknik ini amat berguna apabila anda mempunyai berbilang lajur dalam set hasil anda dan ingin mengumpulkannya berdasarkan pada kedudukan tertentu. Sebagai contoh, pertimbangkan pertanyaan berikut:
SELECT product_name, sales_figure FROM sales_data GROUP BY 1;
Dalam pertanyaan ini, pernyataan "KUMPULAN OLEH 1" mengarahkan pangkalan data untuk mengumpulkan baris mengikut lajur pertama, yang diandaikan sebagai lajur "nama_produk" .
Pesanan Mengikut Jawatan:
The Sintaks "GROUP BY 1" juga boleh digunakan dalam klausa ORDER BY untuk menentukan susunan keputusan berdasarkan kedudukan lajur. Contohnya:
SELECT product_name, sales_figure FROM sales_data GROUP BY 1 ORDER BY 2 DESC;
Pertanyaan ini akan mengumpulkan baris mengikut "nama_produk" (lajur pertama) dan kemudian menyusun keputusan dalam tertib menurun berdasarkan "angka_jualan" (lajur kedua).
Kesimpulan:
Walaupun "KUMPULAN 1" mungkin kelihatan luar biasa pada mulanya sekali imbas, ini merupakan cara yang berkesan untuk mencapai pengelompokan dan penyusunan data yang tepat berdasarkan kedudukan lajur. Dengan memahami tujuannya, anda boleh memanfaatkan sintaks unik ini untuk meningkatkan ketepatan dan kecekapan pertanyaan SQL anda.
Atas ialah kandungan terperinci Apakah Maksud 'KUMPULAN OLEH 1' dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!