Rumah > Artikel > pangkalan data > Apakah perbezaan antara SELECT DISTINCT dan GROUP BY dalam MySQL?
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!