0

私は4つのテーブルを持っています:

  1. 広告 (id, ...)
  2. ウェブサイト (ID、タイトル、URL、...)
  3. スペース (id、website_id、...)
  4. ad_space_counter (id、ad_id、website_id、space_id、インプレッション カウンター、クリック カウンター)

Web サイトには 2 つまたは 3 つのスペースが割り当てられている場合があります。

今私が達成したいのは、1つの SELECT を作成して次のものを取得することです:

  1. ad_id
  2. website_id
  3. URL (ウェブサイトの表から)
  4. タイトル (ウェブサイトの表から)
  5. impression_counter (ただし、その特定の website_id に割り当てられたすべてのスペースの合計)
  6. click_counter (ただし、その特定の website_id に割り当てられたすべてのスペースの合計)

したがって、ad_id =1 と website_id = 1 があり、website_id = 1 のスペースが 3 つある場合、ad_space_counter は、それぞれ固有のインプレッション カウンタとクリック カウンタを持つ 3 つのエントリを生成します。この SELECT は、これらすべての合計を取得し、1 つの結果に表示する必要があります。

ありがとう。

4

1 に答える 1

0

以下を使用してみてください。列「ad_id」が列リストに含まれていないことに注意してください。したがって、以下のクエリは、ウェブサイトごとの統計と見なすことができます。

select 
       a.website_id,
       website.url,
       website.title,
       sum(a.impression_counter) as impression_counter,
       sum(a.click_counter) as click_counter
from ad_space_counter a, 
     ad,
     website
     space
where ad.id = a.ad_id
   and website.id = a.website_id
   and space.id = a.space_id
group by 
       a.website_id,
       website.url,
       website.title
于 2013-11-11T14:19:44.257 に答える