試す:
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;
ここにsqlfiddleのデモがあります
mail_idのみの最大日付とカウントが必要であると仮定してUPDATE
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;
ここにsqlfiddleのデモがあります