在SQL中使用distinct和max进行查询

时间:2014-12-04 07:48:18

标签: mysql

我需要一个mysql查询,它将选择包含" joe"的所有行。在"名称"或"数量"柱。它需要在" name"中区别开来。和"数量"列,这意味着我们将获得与每个名称相对应的数量的最大值,如下图所示: enter image description here

最终表也应按id降序排序。 请告诉我使用mysql查询的方法。 感谢

1 个答案:

答案 0 :(得分:0)

最简单的方法是使用not exists

select * from table_name t1 
where 
not exists (
select 1 from table_name t2 where t1.name= t2.name and t1.quantity < t2.quantity
);

另一种变体是使用left join

select t1.* from table_name t1 
left join table_name t2 on t2.name = t1.name  
and t1.quantity < t2.quantity 
where t2.id is null;