我想要获取的是包含最高价格的行内容。我不确定是否需要自加入或使用having 语句。我尝试过的大多数尝试都没有返回行。实际上我想说的是“哪里的价格是最高的”。
我有以下 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
关于MySQL Group By - 获取与 max() 金额关联的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30739855/