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
);
我试图在下面的 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
);