1

重複の可能性:
Oracle SQL - 列の上位 5 つの値を取得する方法

私は次の列があるテーブルabcを持っています

act_id,cust_id,lastUpdatedDate,custActivity. act_idは主キーです。

lastUpdatedDate は、この顧客に対して行われた最後のアクティビティを保存します。

lastUpdatedDate に基づいて、特定の custid の最新の 10 行を取得しようとしています。

どうすれば達成できますか。

-ヴィベック

4

3 に答える 3

1

OracleではROWNUMを使用できます。ドキュメントについては、ここをクリックしてください。

select *
from  
   ( select * 
     from your_table 
     where cust_id=<given cust_id>
     order by lastUpdatedDate desc ) 
where ROWNUM <= 10;
于 2012-10-18T07:34:10.157 に答える
0

Oracle はROW_NUMBER()ウィンドウ関数をサポートしています。以下を試してください。

SELECT act_id, cust_id, lastUpdatedDate, custActivity
FROM
(
    SELECT  act_id, cust_id, lastUpdatedDate, custActivity,
            ROW_NUMBER() OVER (PARTITION BY cust_id ORDER BY lastUpdatedDate DESC) rn
    FROM tableNAME
) x
WHERE rn <= 10
于 2012-10-18T07:33:01.870 に答える
0

これがあなたに役立つことを願っています-

select act_id,cust_id,lastUpdatedDate,custActivity
  from (
    select act_id,cust_id,lastUpdatedDate,custActivity, row_number() over (order by lastUpdatedDate) r
      from abc
    where act_id=<cust_id>
  )
where r between 1 and 10;
于 2012-10-18T07:38:06.853 に答える