Sql 如何根据创建日期限制select语句只返回一行?
如何将select语句限制为仅显示一条?如果您使用的是Oracle 12c,则可以使用交叉应用而不是内部联接 寻找交叉应用或外部应用-这是您正在寻找的模式 如果您使用的是较低版本,则可以使用“行数”功能:Sql 如何根据创建日期限制select语句只返回一行?,sql,oracle,greatest-n-per-group,Sql,Oracle,Greatest N Per Group,如何将select语句限制为仅显示一条?如果您使用的是Oracle 12c,则可以使用交叉应用而不是内部联接 寻找交叉应用或外部应用-这是您正在寻找的模式 如果您使用的是较低版本,则可以使用“行数”功能: inner join ( SELECT inactivationremark, createts, row_number() OVER( PARTITION BY ir.partnerid ORDER BY ir.createts
inner join
( SELECT
inactivationremark,
createts,
row_number() OVER(
PARTITION BY ir.partnerid ORDER BY ir.createts DESC) rn
FROM t_se_internalrating ir
WHERE ir.ratingstatus = 'Deactivated')
) ir
ON ir.partnerid = p1.id AND ir.rn < 2
AND rn<2条件确保只包含最新的额定值。您可以通过rextester链接提供一些测试数据吗?比如@adamb-你能简化这个问题吗,因为我想不只是我被逻辑和排名系统弄糊涂了,没有一些样本数据。好吧,我会尽我最大的努力现在好点了吗?你用的是什么版本的Oracle?我用的是Oracle11c@adamb请参阅修改后的答案。@adamb行_编号应按ir.partnerid进行分区,修改了答案
inner join
( SELECT
inactivationremark,
createts,
row_number() OVER(
PARTITION BY ir.partnerid ORDER BY ir.createts DESC) rn
FROM t_se_internalrating ir
WHERE ir.ratingstatus = 'Deactivated')
) ir
ON ir.partnerid = p1.id AND ir.rn < 2