我在oracle中有表名employee_1。如果mobile_no和sim_no相同,我想选择最大start_date。我试过了,但没有成功。请帮忙 employee_1表位于
之下Mobile_No Sim_NO Start_Date End_Date
1111111111 1111111111 3/10/2017 21:02:44 10/10/2017 21:02:44
1111111111 1111111111 11/10/2017 21:02:44 13/10/2017 21:02:44
1111111111 1111111112 11/10/2017 21:02:44 13/10/2017 21:02:44
1111111111 1111111111 12/10/2017 21:02:44
我想显示2行
1111111111 1111111111 12/10/2017 21:02:44
1111111111 1111111112 11/10/2017 21:02:44 13/10/2017 21:02:44
答案 0 :(得分:0)
注意:您的定义,示例数据和预期结果不一致。看到您在结果中包含以下行:
1111111111 1111111112 11/10/2017 21:02:44 13/10/2017 21:02:44
其中手机号码和SIM卡号码不同。
仍然,试试这个:
编辑:TOP 1
已替换为LIMIT 1
(Oracle)。
SELECT LIMIT 1 Mobine_No , Sim_No , Start_Date , End_Date
FROM YourTable
WHERE Mobine_No = Sim_No
ORDER BY Start_Date DESC ;
替代:
SELECT Mobine_No , Sim_No , MAX(Start_Date) , End_Date
FROM YourTable
答案 1 :(得分:0)
试试这个,希望它满足你的要求。
select mobile_no,sim_no,start_date,end_date from(
select mobile_no,sim_no,start_date,end_date,rank() over(partition by mobile_no,sim_no order by start_date desc) rn from employee_1)s
where rn=1