Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Các hàng giữ giá trị lớn nhất theo nhóm (Group-wise Maximum) trong MySQL

Hiểu cách tìm hàng giữ giá trị lớn nhất theo nhóm của một cột cụ thể trong MySQL.

Cú pháp tìm hàng giữ group-wise maximum của cột cụ thể:

SELECT colName1, colName2, colName3 FROM tableName s1 WHERE colName3=(SELECT MAX(s2.colName3) FROM tableName s2 WHERE s1.colName1 = s2.colName1) ORDER BY colName1;

Giả sử có bảng PRODUCT sau:

+---------+----------+--------+
| Article | Warehouse| Price  |
+---------+----------+--------+
| 1       | North    | 255.50 |
| 1       | North    | 256.05 |
| 2       | South    | 90.50  |
| 3       | East     | 120.50 |
| 3       | East     | 123.10 |
| 3       | East     | 122.10 |
+---------+----------+--------+

Truy vấn

SELECT Article, Warehouse, Price FROM Product p1 WHERE Price=(SELECT MAX(p2.Price) FROM Product p2 WHERE p1.Article = p2.Article) ORDER BY Article;

Kết quả

+-------------+----------------+------------+
| Article     | Warehouse      | Price      |
+-------------+----------------+------------+
| 0001        | North          | 256.05     |
| 0002        | South          | 90.50      |
| 0003        | East           | 123.10     |
+-------------+----------------+------------+

Truy vấn trên dùng correlated subquery.