有了mysql组

时间:2014-03-19 06:06:32

标签: mysql sql mysql-workbench greatest-n-per-group

我有一张这样的表

Ids Part Values
1   1    value1
1   2    value2
2   1    value3
3   1    some other value
4   1    something1
4   2    something else

我想按照ID分组并获取max(part)的值。

我在下面尝试了查询 -

select * from Parts group by Ids having Part = max(Part)

但是这个查询并不总是返回我想要的值。

我希望结果像

一样
Ids Part Values
1   2     value2
2   1     value3
3   1     some other value
4   2     something else

你可以帮我查询一下吗?

1 个答案:

答案 0 :(得分:3)

试试这个你需要使用自联接并从同一个表中获取最大值来加入

select t1.* from Table1 t1
join 
(SELECT MAX(Part) Part ,Ids from Table1 GROUP BY Ids ) t2
on(t1.Ids=t2.Ids and t1.part =t2.Part)

See fiddle demo