Select 同一查询中的 DISTINCT 和 MAX 并列出附加行中的所有值

Select DISTINCT and MAX in the same query and list all value in rows attach

我试图在下面的 table 中组合 distinct 和 max assign_id 或 last 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  

有一个子查询 returns 每个 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

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