MySQL 分组依据 - 获取与 max() 数量关联的行

MySQL Group By - Get row associated with max() amount

我要获取的是包含最高价格的行内容。我不确定是否需要自行加入,或使用 having 语句。我尝试过的大多数尝试都没有返回任何行。实际上我想说 "WHERE PRICE IS MAX".

我有以下 SQL

SELECT * FROM table

GROUP BY Store, Date, Item

开始于:

+----+-------+-------+------+-------+
| id | Store | Date  | Item | Price |
+----+-------+-------+------+-------+
|  1 | A     | 1-Jan |  123 | 0.5   |
|  2 | A     | 1-Jan |  123 | 0.75  |
|  3 | A     | 2-Jan |  456 | 0.45  |
|  4 | B     | 1-Jan |  123 | 0.85  |
|  5 | B     | 1-Jan |  123 | 0.75  |
|  6 | B     | 2-Jan |  778 | 0.45  |
+----+-------+-------+------+-------+

我想结束

+----+-------+-------+------+-------+
| id | Store | Date  | Item | Price |
+----+-------+-------+------+-------+
|  2 | A     | 1-Jan |  123 | 0.75  |
|  4 | B     | 1-Jan |  123 | 0.85  |
|  6 | B     | 2-Jan |  778 | 0.45  |
+----+-------+-------+------+-------+

您正在寻找的是亲切地称为分组最大值:

http://jan.kneschke.de/projects/mysql/groupwise-max/ https://dev.mysql.com/doc/refman/5.0/en/example-maximum-column-group-row.html