SELECT DISTINCT สามารถใช้เพื่อให้ค่าที่แตกต่างกัน ใช้เพื่อลบบันทึกที่ซ้ำกัน และสามารถใช้กับฟังก์ชันรวมได้เช่นกัน ตัวอย่างเช่น MAX, AVG เป็นต้น สามารถใช้ได้กับคอลัมน์เดียว
ตอนนี้ ฉันกำลังสร้างตารางเพื่อใช้ SELECT DISTINCT สำหรับคอลัมน์ การสร้างตารางด้วยคำสั่ง CREATE -
mysql> สร้างตาราง DistinctDemo-> (-> id int,-> ชื่อ varchar(100)-> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (0.64 วินาที)
การแทรกบันทึก -
mysql> INSERT เป็นค่า DistinctDemo (1,'John');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> INSERT เป็นค่า DistinctDemo (2,'John'); Query OK, 1 แถวได้รับผลกระทบ (0.18 วินาที )mysql> INSERT เป็นค่า DistinctDemo (3,'Bob');Query OK, 1 แถวได้รับผลกระทบ (0.17 วินาที)mysql> INSERT เป็นค่า DistinctDemo (4,'John');Query OK, 1 แถวได้รับผลกระทบ (0.15 วินาที)mysql> INSERT เป็นค่า DistinctDemo (5,'David'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.17 วินาที) mysql> INSERT เป็นค่า DistinctDemo (6,'Bob'); ตกลง ตกลง 1 แถวได้รับผลกระทบ (0.16 วินาที)
แสดงระเบียนทั้งหมดโดยใช้คำสั่ง SELECT แบบสอบถามมีดังนี้ −
mysql> SELECT * จาก DistinctDemo;
หลังจากดำเนินการค้นหาข้างต้น เราจะได้ผลลัพธ์ต่อไปนี้ -
<ก่อนหน้า>+------+-------+| id | ชื่อ |+------+-------+| 1 | จอห์น || 2 | จอห์น || 3 | บ๊อบ || 4 | จอห์น || 5 | เดวิด || 6 | Bob |+------+-------+6 แถวในชุด (0.00 วินาที)ด้านบน เรามีหกระเบียนที่ John และ Bob ซ้ำกัน เราสามารถใช้ DISTINCT เพื่อลบระเบียนที่ซ้ำกัน ไวยากรณ์มีดังนี้ −
เลือก differentcolumn_name จากลำดับ yourTableName ตาม column_name;
ตอนนี้ฉันกำลังใช้แบบสอบถามด้านบนเพื่อลบรายการที่ซ้ำกัน -
mysql> เลือกชื่อที่แตกต่างจาก DistinctDemo
ต่อไปนี้เป็นผลลัพธ์
<ก่อนหน้า>+-------+| ชื่อ |+-------+| จอห์น || บ๊อบ || David |+-------+3 แถวในชุด (0.00 วินาที)Select group by สามารถใช้เพื่อรับข้อมูลจากคอลัมน์ต่างๆ และจัดกลุ่มเป็นหนึ่งหรือหลายคอลัมน์ นอกจากนี้ยังใช้กับฟังก์ชันการรวมได้อีกด้วย ตัวอย่างเช่น SUM, AVG เป็นต้น
ประการแรก ฉันกำลังสร้างตารางโดยใช้คำสั่ง CREATE -
mysql> สร้างตาราง GroupDemo1-> (-> id int,-> name varchar(100),-> address varchar(100)-> );Query OK, 0 แถวได้รับผลกระทบ (0.68 วินาที)
หลังจากสร้างตารางแล้ว ฉันกำลังแทรกบันทึกลงในตารางซึ่งมีรายละเอียดดังนี้ −
mysql> INSERT ลงในค่า GroupDemo1 (1,'John','US'); ตกลง, 1 แถวได้รับผลกระทบ (0.18 วินาที)mysql> INSERT ลงในค่า GroupDemo1 (2,'Bob','UK');แบบสอบถาม ตกลง ได้รับผลกระทบ 1 แถว (0.13 วินาที)mysql> INSERT ลงในค่า GroupDemo1 (3,'David','US'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.12 วินาที)mysql> INSERT ลงในค่า GroupDemo1 (4,'David', 'US');แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.15 วินาที)
ตอนนี้ เราสามารถแสดงระเบียนทั้งหมดโดยใช้คำสั่ง SELECT -
mysql> SELECT * จาก GroupDemo1;
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+------+-------+---------+| id | ชื่อ | ที่อยู่ |+------+-------+---------+| 1 | จอห์น | สหรัฐอเมริกา || 2 | บ๊อบ | สหราชอาณาจักร || 3 | เดวิด | สหรัฐอเมริกา || 4 | เดวิด | US |+------+-------+---------+4 แถวในชุด (0.00 วินาที)ฉันจะใช้ GROUP BY เพื่อทราบที่อยู่เดียวกันกับจำนวนครั้ง นี่คือไวยากรณ์ −
SELECT column_name1,......N ฟังก์ชันการรวม ( ) จากกลุ่ม yourTableName bycolumn_name;
ให้เราใช้ไวยากรณ์ข้างต้นกับ GROUP BY -
mysql> เลือกที่อยู่ จำนวน (*) จาก GroupDemo1 ตามที่อยู่
ต่อไปนี้เป็นผลลัพธ์ -
<ก่อนหน้า>+---------+----------+| ที่อยู่ | นับ(*) |+---------+----------+| สหรัฐอเมริกา | 3 || สหราชอาณาจักร | 1 |+---------+----------+2 แถวในชุด (0.00 วินาที)