思路是:
- 先定位分组后某个值最大的值是多少
- 根据值去全表匹配,得到对应的行
比如有个表:
SELECT * FROM `my_table`
按照sku_id
分组后,选择record_date最大的那一行的全部值,先分组:
SELECT `sku_id`,max(`record_date`) FROM `my_table`
GROUP BY sku_id
得到结果:
然后就是全表定位这两行数据了:
SELECT * FROM my_table
WHERE (`sku_id`,`record_date`) in (
SELECT `sku_id`,max(`record_date`) FROM `my_table`
GROUP BY sku_id
)
得到结果: