Как получить последнюю 'n' обновленную строку из таблицы
Возможный дубликат:
Oracle SQL - Как получить 5 самых высоких значений столбца
у меня есть таблица abc, где у меня есть следующие столбцы
act_id,cust_id,lastUpdatedDate,custActivity
, Где act_id является первичным ключом.
lastUpdatedDate хранит последнее действие, выполненное для этого клиента.
Я пытаюсь получить последние 10 строк для данного Custid на основе lastUpdatedDate.
Как я могу этого достичь.
-vivek
3 ответа
Решение
Вы можете использовать ROWNUM в Oracle. Нажмите здесь для документации
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;