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

Làm thế nào chúng ta có thể tạo một dạng xem MySQL với mệnh đề GROUP BY?

Chúng tôi có thể sử dụng GROUP BY để nhóm các giá trị từ một cột và nếu muốn, chúng ta có thể thực hiện các phép tính trên cột đó. Bạn có thể sử dụng các hàm COUNT, SUM, AVG, v.v., trên cột được nhóm. Để hiểu mệnh đề GROUP BY với các chế độ xem, chúng tôi đang tạo một chế độ xem có tên là ‘Thông tin’ bằng cách sử dụng bảng cơ sở ‘Student_info’ có dữ liệu 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  |
+------+---------+------------+------------+
6 rows in set (0.00 sec)

Cú pháp

Create or Replace View view_name AS Select_statements FROM table GROUP BY expression1, expression2, ... expression_n;

Ví dụ

mysql> Create or Replace View Info AS select Subject, COUNT(*) FROM Student_info GROUP BY Subject;
Query OK, 0 rows affected (0.10 sec)

mysql> Select * from info;
+------------+----------+
| Subject    | COUNT(*) |
+------------+----------+
| Computers  |    3     |
| Economics  |    1     |
| History    |    1     |
| Literature |    1     |
+------------+----------+
4 rows in set (0.00 sec)

mysql> Create or Replace View Info AS select Subject,Name, COUNT(Subject) FROM Student_info GROUP BY Subject, Name;
Query OK, 0 rows affected (0.05 sec)

Truy vấn ở trên sẽ có hai cột trong mệnh đề GROUP BY.

mysql> Select * from info;
+------------+---------+----------------+
| Subject    | Name    | COUNT(Subject) |
+------------+---------+----------------+
| Computers  | Mohan   |       1        |
| Computers  | Ram     |       1        |
| Computers  | Raman   |       1        |
| Economics  | Shyam   |       1        |
| History    | YashPal |       1        |
| Literature | Gaurav  |       1        |
+------------+---------+----------------+
6 rows in set (0.00 sec)

Các tập hợp kết quả ở trên cho thấy rằng mệnh đề GROUP BY nhóm một tập hợp các hàng thành một tập hợp các hàng tóm tắt theo giá trị của các cột.