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

CÓ với GROUP BY trong MySQL

Để sử dụng HAVING với GROUPBY trong MySQL, sau đây là cú pháp. Ở đây, chúng tôi đã đặt một điều kiện trong HAVING để kiểm tra điều kiện giá trị lớn nhất -

SELECT yourColumnName FROM yourTableName GROUP BY yourColumnName HAVING MAX(yourColumnName) < yourValue;

Hãy để chúng tôi xem một ví dụ bằng cách tạo một bảng trong MySQL -

mysql> create table WhereAfterGroupDemo
-> (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserProcess int,
-> UserThreadId int
-> );
Query OK, 0 rows affected (5.74 sec)

Ví dụ

Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -

mysql> insert into WhereAfterGroupDemo(UserProcess,UserThreadId) values(1211,3);
Query OK, 1 row affected (0.10 sec)
mysql> insert into WhereAfterGroupDemo(UserProcess,UserThreadId) values(1412,3);
Query OK, 1 row affected (0.39 sec)
mysql> insert into WhereAfterGroupDemo(UserProcess,UserThreadId) values(1510,4);
Query OK, 1 row affected (0.19 sec)
mysql> insert into WhereAfterGroupDemo(UserProcess,UserThreadId) values(1511,4);
Query OK, 1 row affected (0.31 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng một câu lệnh chọn. Truy vấn như sau -

mysql> select *from WhereAfterGroupDemo;

Đầu ra

+--------+-------------+--------------+
| UserId | UserProcess | UserThreadId |
+--------+-------------+--------------+
|      1 | 1211        |            3 |
|      2 | 1412        |            3 |
|      3 | 1510        |            4 |
|      4 | 1511        |            4 |
+--------+-------------+--------------+
4 rows in set (0.00 sec)

Sau đây là truy vấn để sử dụng HAVING và GROUP BY và lấy UserThreaId với quy trình nhỏ hơn 1510 -

mysql> SELECT UserThreadId FROM WhereAfterGroupDemo GROUP BY UserThreadId HAVING MAX(UserProcess) < 1510;

Đầu ra

+--------------+
| UserThreadId |
+--------------+
|            3 |
+--------------+
1 row in set (0.00 sec)