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)
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!