表中有重復記錄,我們需要使用sql中的group by或window函式僅選擇按日期的最新記錄
| emp_id | emp_name | department| create_date
--------------------------------------------
| 1 | Nilesh | 10 | 1-JAN-22 |
| 1 | Nilesh | 11 | 5-JAN-22 |
| 2 | Rohit | 12 | 1-JAN-22 |
| 2 | Rohit | 13 | 5-JAN-22 |
代碼:
select * from (
select emp_id, emp_name, create_date, department, row_number() over
(partition by date(create_date)
order by create_date desc) as row_num
from emp1)
where row_num = 1
order by create_date;```
uj5u.com熱心網友回復:
你可以簡單地使用GROUP BY這樣
SELECT
emp_id, emp_name, department, MAX(create_date)
FROM
emp1
GROUP BY
emp_id, emp_name, department
如果你想使用ROW_NUMBER你必須PARTITION BYid
SELECT
emp_id, emp_name, department, create_date
FROM
(
SELECT
emp_id, emp_name, department, create_date, ROW_NUMBER () OVER (partition by emp_id order by create_date desc) as num
FROM
emp1
) sub_query
where num = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/464499.html
