Oracle SQL 查询获取人员最新一条通行记录
Oracle SQL 查询获取人员最新一条通行记录
有一张表中有以下几个字段
字段名 | 说明 |
---|---|
ID | 通行记录ID |
RYBH | 人员编号 |
FX | 通行方向(进,出) |
TXSJ | 通行日期(yyyy-mm-dd hh24:mi:ss) |
现在要查询每个人员近7天最新一条出入记录是进还是出,这里使用row_number() over (PARTITION BY XXX ORDER BY XXX)
进行编号和分组处理,SQL 如下
select RYBH,WYBS,FX,TXSJ,flag
from (
select
RYBH,WYBS,FX,TXSJ,
row_number() over (PARTITION BY RYBH ORDER BY TXSJ desc) as flag
from
T_GXXS_BZKSSSJCXX
where TO_DATE(TXSJ, 'yyyy-mm-dd hh24:mi:ss') >= SYSDATE -6
order by TXSJ desc
)temp where temp.flag = '1'
License:
CC BY 4.0