Rumah > pangkalan data > tutorial mysql > Bagaimanakah GROUP BY Berfungsi Tanpa Fungsi Agregat dalam SQL?

Bagaimanakah GROUP BY Berfungsi Tanpa Fungsi Agregat dalam SQL?

Barbara Streisand
Lepaskan: 2024-12-25 08:35:23
asal
392 orang telah melayarinya

How Does GROUP BY Work Without Aggregate Functions in SQL?

Kumpulkan Dengan tanpa Fungsi Agregat: Memahami Mekanisme

GROUP BY ialah klausa SQL yang berkuasa yang membolehkan kami mengumpulkan dan meringkaskan data berdasarkan lajur yang ditentukan. Walaupun fungsi agregat seperti SUM, COUNT dan AVG biasanya digunakan dengan GROUP BY, GROUP BY juga boleh digunakan tanpa fungsi agregat. Memahami konsep ini adalah penting untuk memanfaatkan keupayaan penuh GROUP BY.

Apabila menggunakan GROUP BY tanpa fungsi agregat, adalah penting untuk memahami bahawa setiap kumpulan akan menghasilkan satu baris dalam output. Nilai untuk lajur yang tidak disertakan dalam klausa GROUP BY akan diduplikasi dengan berkesan untuk setiap baris dalam kumpulan.

Pertimbangkan jadual EMP:

ename | sal
-------+------
Smith  | 1000
Jones  | 1200
Davis  | 1100
Wilson | 1200
Brown  | 1300
Salin selepas log masuk

Senario 1: KUMPULAN Tidak Sah BY Expression

SELECT ename, sal
FROM emp
GROUP BY ename, sal;
Salin selepas log masuk

Pertanyaan ini gagal dengan ralat ORA-00979 kerana sal tidak termasuk dalam klausa GROUP BY. Setiap baris akan mempunyai nilai yang berbeza untuk sal, menghasilkan berbilang baris untuk setiap pekerja.

Senario 2: KUMPULAN YANG SAH MENGIKUT Ungkapan

SELECT ename, sal
FROM emp
GROUP BY ename;
Salin selepas log masuk

Pertanyaan ini sah kerana ia mengumpulkan baris mengikut nama, yang memastikan baris unik untuk setiap pekerja. Nilai untuk sal akan diduplikasi untuk setiap baris kepunyaan pekerja yang sama.

Senario 3: KUMPULAN TIDAK SAH MENGIKUT Ungkapan

SELECT ename, sal
FROM emp
GROUP BY sal;
Salin selepas log masuk

Pertanyaan ini tidak sah kerana ia cuba mengumpulkan baris mengikut sal, yang akan menghasilkan berbilang baris untuk pekerja yang sama gaji.

Senario 4: Tidak Sah KUMPULAN MENGIKUT Ungkapan

SELECT empno, ename, sal
FROM emp
GROUP BY sal, ename;
Salin selepas log masuk

Pertanyaan ini tidak sah kerana susunan lajur dalam klausa GROUP BY mesti sepadan dengan susunan lajur dalam klausa SELECT.

Senario 5: Sah GROUP BY Expression

SELECT empno, ename, sal
FROM emp
GROUP BY empno, ename, sal;
Salin selepas log masuk

Pertanyaan ini sah kerana susunan lajur dalam klausa GROUP BY sepadan dengan susunan lajur dalam klausa SELECT. Hasilnya akan mengandungi satu baris untuk setiap gabungan berbeza empno, ename dan sal.

Ringkasnya, GROUP BY tanpa fungsi agregat mengalih keluar pendua daripada lajur yang ditentukan dengan mengumpulkan baris yang berkongsi nilai yang sama. Walau bagaimanapun, semua lajur yang tidak disertakan dalam klausa GROUP BY akan mempunyai nilai pendua dalam baris output.

Atas ialah kandungan terperinci Bagaimanakah GROUP BY Berfungsi Tanpa Fungsi Agregat dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan