0

嗨,我想生成包含以下内容的报告:按国家/目的地统计的每日报告。

例如。

贡献数量 没有视频 经验数量 根据昨天的计数,每周总计,每个目的地每年总计。

我写了以下查询来计算一周的总数。

select a.name, count(e.id),count(uc.id),count(v.id) 
from accommodation a, user_contribution uc,experience_video ev, video v,
(select id "ID",user_contribution_id,accommodation_id,case 
 when modified_on is null then trunc(created_on) 
 else trunc(modified_on) end last_modified from experience)e 
 where
      e.last_modified between trunc(sysdate)-7 and trunc(sysdate) and
      e.accommodation_id = a.id and
      e.user_contribution_id = uc.id and
      e.id = ev.experience_id and
      v.id = ev.video_id
group by a.name

union 

select l.name, count(ex.id),count(uc.id),count(v.id),count(r.id) 
from location l, user_contribution uc,experience_video ev, video v,
(select id "ID",user_contribution_id,location_id,case 
when modified_on is null then trunc(created_on) 
else trunc(modified_on) end last_modified from experience)ex 
where
    ex.last_modified between trunc(sysdate)-7  and 
    trunc(sysdate) and
    l.id = ex.location_id and
    ex.user_contribution_id = uc.id and
    ex.id = ev.experience_id and
    v.id = ev.video_id
group by l.name;

我可以类似地编写查询来提取每周和每年的计数。

基本上我希望每个目的地的所有计数都在一行中。

有没有更好的方法来编写这个查询?

感谢您的帮助。

4

0 回答 0