Computer >> Máy Tính >  >> Lập trình >> MySQL

Mệnh đề GROUP BY sẽ hoạt động như thế nào nếu không có hàm tổng hợp?


Khi chúng ta sử dụng mệnh đề GROUP BY trong câu lệnh SELECT mà không sử dụng các hàm tổng hợp thì nó sẽ hoạt động giống như mệnh đề DISTINCT. Ví dụ, chúng ta có bảng sau -

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
| 150  | Saurabh | NULL       | Literature |
+------+---------+------------+------------+
7 rows in set (0.00 sec)

Bằng cách sử dụng mệnh đề DISTINCT trên cột ‘Địa chỉ’, MySQL trả về tập kết quả sau.

mysql> Select DISTINCT ADDRESS from Student_info;
+------------+
| ADDRESS    |
+------------+
| Amritsar   |
| Chandigarh |
| Shimla     |
| Jhansi     |
| Delhi      |
| NULL       |
+------------+
6 rows in set (0.07 sec)

Bây giờ, bằng cách sử dụng mệnh đề GROUP BY như sau, chúng ta có thể nhận được bộ kết quả tương tự như chúng ta nhận được bằng cách sử dụng DISTINCT -

mysql> Select ADDRESS from Student_info GROUP BY Address;
+------------+
| ADDRESS    |
+------------+
| NULL       |
| Amritsar   |
| Chandigarh |
| Delhi      |
| Jhansi     |
| Shimla     |
+------------+
6 rows in set (0.00 sec)

Chúng ta có thể quan sát thấy sự khác biệt giữa cả hai tập kết quả do MySQL trả về là tập kết quả trả về bởi truy vấn MySQL sử dụng mệnh đề GROUP BY được sắp xếp và ngược lại, tập kết quả trả về bởi truy vấn MySQL sử dụng mệnh đề DISTICT không được sắp xếp.