Rumah  >  Artikel  >  pangkalan data  >  Apakah perbezaan antara SELECT DISTINCT dan GROUP BY dalam MySQL?

Apakah perbezaan antara SELECT DISTINCT dan GROUP BY dalam MySQL?

WBOY
WBOYke hadapan
2023-09-18 23:53:071214semak imbas

MySQL 中 SELECT DISTINCT 与 GROUP BY 的区别?

SELECT DISTINCT boleh digunakan untuk memberikan nilai yang berbeza. Gunakannya untuk mengalih keluar rekod pendua dan Ia juga boleh digunakan dengan fungsi agregat. Contohnya: MAX, AVG, dsb. Ini boleh digunakan pada satu lajur.

Sekarang, saya sedang mencipta jadual untuk menggunakan SELECT DISTINCT pada lajur. Buat jadual Bantuan untuk CREATE arahan -

mysql> CREATE TABLE DistinctDemo
-> (
-> id int,
-> name varchar(100)
-> );
Query OK, 0 rows affected (0.64 sec)

Masukkan rekod −

mysql> INSERT into DistinctDemo values(1,'John');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(2,'John');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into DistinctDemo values(3,'Bob');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(4,'John');
Query OK, 1 row affected (0.15 sec)

mysql> INSERT into DistinctDemo values(5,'David');
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into DistinctDemo values(6,'Bob');
Query OK, 1 row affected (0.16 sec)

Paparkan semua rekod dengan bantuan arahan SELECT. Pertanyaannya adalah seperti berikut -

mysql> SELECT * from DistinctDemo;

Selepas melaksanakan pertanyaan di atas, kami akan mendapat output berikut −

+------+-------+
| id   | name  |
+------+-------+
| 1    | John  |
| 2    | John  |
| 3    | Bob   |
| 4    | John  |
| 5    | David |
| 6    | Bob   |
+------+-------+
6 rows in set (0.00 sec)

Di atas, kami mempunyai enam rekod, antaranya John dan Bob adalah pendua. Kita boleh memohon DISTINCT untuk Alih keluar rekod pendua. Sintaksnya adalah seperti berikut −

SELECT distinctcolumn_name from yourTableName order by column_name;

Kini, saya menggunakan pertanyaan di atas untuk mengalih keluar pendua-

mysql> SELECT distinct name from DistinctDemo;

Berikut ialah output

rreee#🎜 Pilih kumpulan mengikut boleh digunakan Dapatkan data daripada lajur yang berbeza dan kumpulan kepada satu atau lebih lajur. Ini juga boleh digunakan dengan fungsi agregat. Contohnya:SUM,AVG dll.

Pertama, saya mencipta jadual dengan bantuan arahan CREATE -

lajur ini juga boleh digunakan dengan fungsi agregat. Contohnya: SUM, AVG, dsb.

Pertama, saya mencipta jadual menggunakan arahan CREATE −
+-------+
| name  |
+-------+
| John  |
| Bob   |
| David |
+-------+
3 rows in set (0.00 sec)

Selepas mencipta jadual, saya memasukkan rekod ke dalam jadual seperti yang ditunjukkan di bawah −

mysql> CREATE table GroupDemo1
-> (
-> id int,
-> name varchar(100),
-> address varchar(100)
-> );
Query OK, 0 rows affected (0.68 sec)
#🎜🎜 , kita boleh memaparkan semua rekod dengan bantuan arahan SELECT −

mysql> INSERT into GroupDemo1 values(1,'John','US');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into GroupDemo1 values(2,'Bob','UK');
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into GroupDemo1 values(3,'David','US');
Query OK, 1 row affected (0.12 sec)

mysql> INSERT into GroupDemo1 values(4,'David','US');
Query OK, 1 row affected (0.15 sec)

Berikut ialah output-

mysql> SELECT * from GroupDemo1;

Saya akan memohon GROUP BY untuk mengetahui bilangan kejadian alamat yang sama. inilah dia Sintaks −

+------+-------+---------+
| id   | name  | address |
+------+-------+---------+
| 1    | John  | US      |
| 2    | Bob   | UK      |
| 3    | David | US      |
| 4    | David | US      |
+------+-------+---------+
4 rows in set (0.00 sec)

Mari kita gunakan sintaks di atas untuk GROUP BY -

SELECT column_name1,......N aggregate function( ) from yourTableName group by
column_name;

Berikut ialah output -

mysql> SELECT address, count(*) from GroupDemo1 group by address;
#🎜🎜

Atas ialah kandungan terperinci Apakah perbezaan antara SELECT DISTINCT dan GROUP BY dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Bantuan pelayan pelanggan MySQLArtikel seterusnya:Bantuan pelayan pelanggan MySQL