有一张表,里面有很多行和字段,字段中有字段sub_id,date和status。有没有一种方法可以选择那些date在相同的行中具有最大值的行sub_id,如果突然发现date有多个最大值,那么status在具有相同sub_id和相同最大值的行中选择那些具有最大值的行date?现在我这样做:
SELECT o.`id`,o.`sub_id`, o.`date`, o.`status`
INNER JOIN (SELECT MAX(`date`) `max_date`, `sub_id` FROM `orders` GROUP BY `sub_id`) o2 ON o2.`max_date`=o.`date` AND o2.`sub_id`=o.`sub_id`
FROM `orders` o
这似乎可行,但如果突然sub_id有多个相同的行date,则选择选择“第一个”,但我想选择最大的行status。
是否有可能做到这一点?
1 个回答