Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เราสามารถใช้ MySQL GROUP BY clause กับหลายคอลัมน์เช่น MySQL DISTINCT clause ได้หรือไม่


ได้ เป็นไปได้ที่จะใช้ส่วนคำสั่ง MySQL GROUP BY กับหลายคอลัมน์ เช่นเดียวกับที่เราสามารถใช้คำสั่งย่อย MySQL DISTINCT ลองพิจารณาตัวอย่างต่อไปนี้ซึ่งเราใช้อนุประโยค DISTINCT ในเคียวรีแรกและ GROUP BY clause ในเคียวรีที่สอง ในคอลัมน์ 'fname' และ 'Lname' ของตารางที่ชื่อ 'testing'

mysql> Select * from testing;
+------+---------+---------+
| id   | fname   | Lname   |
+------+---------+---------+
|  200 | Raman   | Kumar   |
|  201 | Sahil   | Bhalla  |
|  202 | Gaurav  | NULL    |
|  203 | Aarav   | NULL    |
|  204 | Harshit | Khurana |
|  205 | Rahul   | NULL    |
|  206 | Piyush  | Kohli   |
|  207 | Lovkesh | NULL    |
|  208 | Gaurav  | Kumar   |
|  209 | Raman   | Kumar   |
+------+---------+---------+
10 rows in set (0.00 sec)

mysql> Select DISTINCT FNAME,LNAME from testing;
+---------+---------+
| FNAME   | LNAME   |
+---------+---------+
| Raman   | Kumar   |
| Sahil   | Bhalla  |
| Gaurav  | NULL    |
| Aarav   | NULL    |
| Harshit | Khurana |
| Rahul   | NULL    |
| Piyush  | Kohli   |
| Lovkesh | NULL    |
| Gaurav  | Kumar   |
+---------+---------+
9 rows in set (0.00 sec)

mysql> Select Fname, LNAME from testing GROUP BY Fname,Lname;
+---------+---------+
| Fname   | LNAME   |
+---------+---------+
| Aarav   | NULL    |
| Gaurav  | NULL    |
| Gaurav  | Kumar   |
| Harshit | Khurana |
| Lovkesh | NULL    |
| Piyush  | Kohli   |
| Rahul   | NULL    |
| Raman   | Kumar   |
| Sahil   | Bhalla |
+---------+---------+
9 rows in set (0.00 sec)

ข้อแตกต่างเพียงอย่างเดียวคือชุดผลลัพธ์ส่งคืนโดยคิวรี MySQL โดยใช้ GROUP BY clause จะถูกจัดเรียง และในทางกลับกัน ชุดผลลัพธ์ส่งคืนโดยคิวรี MySQL โดยใช้อนุประโยค DTICT จะไม่ถูกจัดเรียง