select a.*
from (
select lname,
lstatus,
ltime,
lid,
row_number() over(partition by ltime,lstatus,lid order by ltime desc) as rm
from sortdata
)
a where a.rm=1;
上述查询的结果是:
jo doc 10/10/2019 211 1
jo doc 11/10/2019 211 1
jo roc 12/10/2019 211 1
jo woc 13/10/2019 211 1
ltime的数据类型为dat时,请提出提示。
答案 0 :(得分:0)
修复partition by
。如果您想要每lid
行:
select a.*
from (select lname, lstatus, ltime, lid,
row_number() over( partition by lid order by ltime desc) as rn
from sortdata
) a
where a.rn = 1;
通过包含ltime
,您将分区大小限制为一行。因此,分区中所有行的row_number()
值为1
(其中只有一行)。