select a.* from tb a join (select name,max(date) date group by name) b on a.name=b.name and a.date=b.date
select a.* from tb a join (select name,max(date) date from tb group by name) b on a.name=b.name and a.date=b.date
select id,name,class,sex,date from a t where not exists(select 1 from a t1 where t.name=t1.name and t.date<t1.date)
select * from table where (name, date) in (select name, max(date) from table group by name )
我自己也写了一个查询,貌似查询结果和三楼的一样 SELECT id,name,class,sex,date FROM (select id,name,class,sex,date ,row_number()over(partition by name order by date desc) mm from a) WHERE mm=1 就是不知道,两个查询结果的效率,哪个高啊
select id,name,class,sex,date
from a t
where not exists(select 1 from a t1
where t.name=t1.name and t.date<t1.date)
select *
from table
where (name, date) in
(select name, max(date)
from table
group by name
)
(select id,name,class,sex,date ,row_number()over(partition by name order by date desc) mm
from a)
WHERE mm=1
就是不知道,两个查询结果的效率,哪个高啊