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

สร้าง MySQL View พร้อม GROUP BY

การใช้ GROUP BY ใน View

GROUP BY จัดกลุ่มค่าคอลัมน์ และคำนวณได้ด้วย COUNT, SUM, AVG ฯลฯ

ตัวอย่าง: ใช้ตาราง Student_info

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  |
+------+---------+------------+------------+

ไวยากรณ์

CREATE OR REPLACE VIEW view_name AS 
SELECT_statements FROM table 
GROUP BY expression1, expression2, ...;

ตัวอย่าง 1: นับจำนวนต่อ Subject

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 |
+------------+----------+

ตัวอย่าง 2: GROUP BY 2 คอลัมน์

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)

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 |
+------------+---------+----------------+

GROUP BY จัดกลุ่มแถวเป็นแถวสรุปตามค่าคอลัมน์