在同一查询中选择DISTINCT和MAX并在附加行中列出所有值

时间:2018-08-10 08:34:09

标签: mysql sql max distinct

我正在尝试组合下表中的不重复和最大assign_id或最后一个assign_id,但没有获得正确的值。

Table_task

ASSIGN_ID  |  DRV_ID   | VEHICLE_ID
-------------------------------------- 
    1      |    EFFA   |   1000  
    2      |    SAM    |   1001 
    3      |    FIZA   |   1004 
    4      |    JIJO   |   1000 
    5      |    LISA   |   1000  

如何获得如下所示的价值显示?

ASSIGN_ID   |  DRV_ID  |  VEHICLE_ID 
----------------------------------------- 
     2      |   SAM    |   1001  
     3      |   FIZA   |   1004 
     5      |   LISA   |   1000  

2 个答案:

答案 0 :(得分:1)

具有一个子查询,该查询返回每个vehicle_id的最大Assign_id。 JOIN得到的结果:

select t1.*
from task t1
join (select vehicle_id, max(assign_id) assign_id
      from task
      group by vehicle_id) t2
  on t1.vehicle_id= t2.vehicle_id
  and t1.assign_id = t2.assign_id

答案 1 :(得分:0)

假设assign_id没有联系,那么您可以使用子查询:

select t.*
from table t
where assign_id = (select max(t1.assign_id)
                   from table t1
                   where t1.vehicle_id = t.vehicle_id
                   );
相关问题