Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为每行选择最大值-Oracle Sql_Sql_Oracle_Greatest N Per Group - Fatal编程技术网

为每行选择最大值-Oracle Sql

为每行选择最大值-Oracle Sql,sql,oracle,greatest-n-per-group,Sql,Oracle,Greatest N Per Group,我有一个疑问。 我需要找到特定客户列表的最新情况,让我们简单地说,我需要100个客户中的3个。 我需要检查他们最后一次拿到奖金是什么时候。 该表将是: EVENT_TBL 字段:帐户ID,事件日期,奖金ID 您能建议一种获取最新(MAX)事件日期的方法吗 我正在使用SELECT…IN指定帐户ID,但不确定如何使用MAX、分组依据等(如果需要)。使用行号()分析功能: SELECT * FROM ( SELECT t.*, ROW_NUMBER() OVER ( PAR

我有一个疑问。 我需要找到特定客户列表的最新情况,让我们简单地说,我需要100个客户中的3个。 我需要检查他们最后一次拿到奖金是什么时候。 该表将是:

EVENT_TBL
字段:
帐户ID
事件日期
奖金ID

您能建议一种获取最新(
MAX
事件日期的方法吗

我正在使用
SELECT…IN
指定帐户ID,但不确定如何使用
MAX
分组依据
等(如果需要)。

使用
行号()
分析功能:

SELECT *
FROM   (
  SELECT t.*,
         ROW_NUMBER() OVER ( PARTITION BY Account_id ORDER BY event_date DESC ) AS rn
  FROM   EVENT_TBL t
  WHERE  Account_ID IN ( 123, 456, 789 )
)
WHERE  rn = 1
使用
行编号()
分析功能:

SELECT *
FROM   (
  SELECT t.*,
         ROW_NUMBER() OVER ( PARTITION BY Account_id ORDER BY event_date DESC ) AS rn
  FROM   EVENT_TBL t
  WHERE  Account_ID IN ( 123, 456, 789 )
)
WHERE  rn = 1
你可以试试

with AccountID_Max_EVENT_DATE as (
 select AccountID, max(EVENT_DATE) MAX_D
 from EVENT_TBL 
 group by AccountID
)
SELECT E.* 
FROM EVENT_TBL E
INNER JOIN AccountID_Max_EVENT_DATE M 
ON (E.AccountID = M.AccountID AND M.MAX_D = E.EVENT_DATE)
你可以试试

with AccountID_Max_EVENT_DATE as (
 select AccountID, max(EVENT_DATE) MAX_D
 from EVENT_TBL 
 group by AccountID
)
SELECT E.* 
FROM EVENT_TBL E
INNER JOIN AccountID_Max_EVENT_DATE M 
ON (E.AccountID = M.AccountID AND M.MAX_D = E.EVENT_DATE)

示例代码和期望结果?示例代码和期望结果?这使用自连接,可能需要两次表扫描。此外,如果有多个条目具有相同的(最大)日期,则每个帐户将返回多行。这将使用自联接,可能需要两次表扫描。此外,如果有多个条目具有相同的(最大)日期,则每个帐户将返回多行。它返回:“rn无效标识符)@MorganForever是否将
作为rn
部分包含?它返回:“rn无效标识符)@MorganForever是否将
作为rn
部分包含?