重複の可能性:
Oracle SQL - 列の上位 5 つの値を取得する方法
私は次の列があるテーブルabcを持っています
act_id,cust_id,lastUpdatedDate,custActivity. act_idは主キーです。
lastUpdatedDate は、この顧客に対して行われた最後のアクティビティを保存します。
lastUpdatedDate に基づいて、特定の custid の最新の 10 行を取得しようとしています。
どうすれば達成できますか。
-ヴィベック
重複の可能性:
Oracle SQL - 列の上位 5 つの値を取得する方法
私は次の列があるテーブルabcを持っています
act_id,cust_id,lastUpdatedDate,custActivity. act_idは主キーです。
lastUpdatedDate は、この顧客に対して行われた最後のアクティビティを保存します。
lastUpdatedDate に基づいて、特定の custid の最新の 10 行を取得しようとしています。
どうすれば達成できますか。
-ヴィベック
OracleではROWNUMを使用できます。ドキュメントについては、ここをクリックしてください。
select *
from
( select *
from your_table
where cust_id=<given cust_id>
order by lastUpdatedDate desc )
where ROWNUM <= 10;
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
これがあなたに役立つことを願っています-
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;