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

Rows Holding Group-wise Maximum ของ Column ใน MySQL

หา rows ที่มี group-wise maximum ของ column เฉพาะใน MySQL

Syntax:

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

ตัวอย่าง PRODUCT Table

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

Query

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

Output

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

คิวรีนี้ใช้ correlated subquery