Как получить последнюю '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;
Другие вопросы по тегам