簡體   English   中英

比較每周連接的兩個表的計數 - SQL

[英]Compare counts of two tables joined on week - SQL

我是 SQL 的新手。 我有兩張桌子。 我想計算第一件事每周出現的次數,第二件事每周出現的次數,然后比較它們。 我已經有了在兩個單獨的圖表中計數的代碼,但似乎無法加入它們。

我的第一次計數:

select 
  date_part('week',Table2.date at time zone 'utc' at time zone 'Europe/Paris') as week, 
  count(Table2.issue_solved) as count2
from Table2
where date is not null
group by week
order by week asc

我的第二次計數

select 
  date_part('week',Table1.activity_date at time zone 'utc' at time zone 'Europe/Paris') as week, 
  count(distinct Table1.activity_id) as count1
from Table1
left join X
  on Y1 = Y2
left join W
  on A1 = A2
  and B1 = B2

where activity_dimensions.type in ('Training')
  and acquisition_opportunity_dimensions.product_family = 'EHR'
  and activity_dimensions.country = 'fr'
  and activity_date::date >= date_trunc('[aggregation]', [daterange_start])
  and activity_date::date <= [daterange_end]
  and activity_date::date <= current_date

group by week
order by count_training_meetings desc

我試圖將第一個代碼加入第二個並在一周內加入,但我似乎無法完成這項工作。

任何想法?

不確定潛望鏡是否允許full join ,但如果您的第一個數據集(查詢)中有幾個星期沒有出現在第二個數據集(查詢)中,反之亦然,您應該使用此運算符來檢索所有內容。

coalesce旨在獲得它認為不為空的第一個值。

在標准 sql 中,它應該是這樣的

select
  coalesce(q1.week, q2.week) as week,
  count1,
  count2
from 
  (
    select 
      date_part('week',Table2.date at time zone 'utc' at time zone 'Europe/Paris') as week, 
      count(Table2.issue_solved) as count2
    from Table2
    where date is not null
    group by week
  ) q1
  full join
  (
    select 
      date_part('week',Table1.activity_date at time zone 'utc' at time zone 'Europe/Paris') as week, 
      count(distinct Table1.activity_id) as count1
    from Table1
    left join X
      on Y1 = Y2
    left join W
      on A1 = A2
      and B1 = B2
    where activity_dimensions.type in ('Training')
      and acquisition_opportunity_dimensions.product_family = 'EHR'
      and activity_dimensions.country = 'fr'
      and activity_date::date >= date_trunc('[aggregation]', [daterange_start])
      and activity_date::date <= [daterange_end]
      and activity_date::date <= current_date
    group by week
  ) q2
    on q1.week = q2.week

正如我在之前的評論中告訴您的那樣,如果您的數據中存在不同年份的數周可能是錯誤的,但這只是一個建議

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM