嘗試截斷:
select mail_id, archived_by, archived_date, cnt
from (
select mail_id, archived_by, archived_date, count(*) cnt
from Mail_Archives
group by mail_id, archived_by, archived_date
order by archived_date desc)
where rownum = 1;
或者(如果你喜歡的窗函數)
select mail_id, archived_by, archived_date, cnt from (
select mail_id,
archived_by,
archived_date,
row_number() over (order by archived_date desc) rn,
count(*) over (partition by mail_id, archived_by, archived_date) cnt
from Mail_Archives)
where rn = 1;
Here is a sqlfiddle demo
UPDATE假設你想要的最大日期和次數,僅用於mail_id
select mail_id, archived_by, archived_date, cnt from (
select mail_id,
archived_by,
archived_date,
row_number() over (order by archived_date desc) rn,
count(*) over (partition by mail_id) cnt
from Mail_Archives)
where rn = 1;
Here is a sqlfiddle demo
喜是它的工作很好,但我需要最新Archived_Date – SANJAY
計數計什麼?由更新最後一條記錄的同一用戶執行的所有更新的計數?如果同一用戶在兩年前有過更新,那麼該更新也應該如何計算?你應該定義一個好的標準 – alfasin
如果你在我的示例表中看到,在Archived_BY中有兩個記錄名爲TINA,所以我需要計數以及最新的archived_Date和archived_by – SANJAY