在同一个查询中选择distinct和max,并在attach行中列出所有值

n7taea2i  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(176)

我试图在下表中合并distinct和max assign\ U id或last assign\ U id,但没有得到正确的值。
表\u任务

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
flmtquvp

flmtquvp1#

假设 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
                   );
vyswwuz2

vyswwuz22#

有一个子查询返回每个车辆的最大分配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

相关问题