MySQL GROUP BY和MAX()错误

时间:2016-07-19 09:05:34

标签: mysql group-by max

我的表格如下:

id  |  invoice  |  newlevel   |   status
----------------------------------------
1   |  123      |  1          |  
2   |  123      |  2          |  2abc
3   |  555      |  1          |  
4   |  123      |  3          |  3xyz
5   |  555      |  2          |  2abc
6   |  999      |  5          |  5YYY

我如何

SELECT invoice, MAX(newlevel) AS currentlevel FROM example GROUP BY invoice

当我执行查询时,它返回

id  |  invoice  |  currentlevel   |   status
----------------------------------------------
4   |  123      |  3              |   
5   |  555      |  2              |   
6   |  999      |  5              |   5YYY

列状态似乎是第一个结果(来自id = 1),其他数据是正确的。

我尝试了所有类似联合多个查询的东西,然后分组或者3级中的subquerys。

更新: @Barmar是对的,这是重复的。我的解决方案是@Kevin Burton的答案in the original post

SELECT * 
FROM t1 WHERE (id,rev) IN 
( SELECT id, MAX(rev)
  FROM t1
  GROUP BY id
)

0 个答案:

没有答案