select distinct emp,phno,addrs,email
from
(
select emp,phno,addrs,email,
rank() over(order by to_date(c.created_on) desc) rn
from cdv.emp c
)s
where rn=1;
select emp,phno,addrs,email
from
(
select emp,phno,addrs,email,
row_number() over(partition by emp,phno,addrs,email order by to_date(c.created_on) desc) rn
from cdv.emp c
)s
where rn=1;
2条答案
按热度按时间kkbh8khc1#
使用
rank
分析函数。它的工作速度比子查询快得多:如果你想要最新的记录
emp,phno,addrs,email
,则可以使用不带distinct的行\u number()。如果此方法适用,则速度会更快:mzaanser2#
我尝试了这个选择不同的emp,phno,addrs,email from cdv.emp where to_date(created_on)in(select max(to_date(c.created_on))from cdv.emp c);
有没有其他更有效更快的方法?