0

さまざまなアクティビティのカウントを提供する必要があります。一部の列はいくつかのテーブルからのものですが、他のテーブルを結合して取得する必要があるものはほとんどありません。 そして最後の列では、1 つのフィールドに 5 列のカウントを*追加する必要があります*。以下のクエリを参照して、結果を達成するための最良の方法をアドバイスしてください :)

SELECT web. OID,web. MARKETING_GROUP,
  SUM(DECODE(WEB.EVENT_TYPE,5,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONCOMMENT ,
  SUM(DECODE(WEB.EVENT_TYPE,6,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONSTART ,
  SUM(DECODE(WEB.EVENT_TYPE,7,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONVIEW,  
  SUM(case when o.when _clicked is not null then c(*))AS clickcount, 
  **SUM(case when WEB.EVENT_TYPE in(5,6,7,8)then WEB.ACTIVITY_COUNT +c.count(*))as Total** --------- This is where I am getting stuck and confused???
  from GMMI_AIR.WEB_ACTIVITY_FCT WEB join GMMI_AIR.COUPON_WEB_ACTIVITY C
     on WEB.OID_WEB_ACTIVITY_FCT = C.OID_COUPON_WEB_ACTIVITY

結合されたテーブルには activity_count または activity_type という名前のフィールドがないため、私は本当に行き詰まっています。そのため、カウントを確認するには count(*) しか実行できませんが、他のすべてのフィールドを 1 つの列に追加して合計すると、非常に混乱します??

助けて??/

4

1 に答える 1

1
SELECT web. OID,web. MARKETING_GROUP,
  SUM(DECODE(WEB.EVENT_TYPE,5,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONCOMMENT ,
  SUM(DECODE(WEB.EVENT_TYPE,6,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONSTART ,
  SUM(DECODE(WEB.EVENT_TYPE,7,WEB.ACTIVITY_COUNT,0))  AS DISCUSSIONVIEW,  
  SUM(case when o.when _clicked is not null then c(*))AS clickcount, 
  SUM(case when WEB.EVENT_TYPE in(5,6,7,8)then WEB.ACTIVITY_COUNT END) +c.count(*) as Total
from GMMI_AIR.WEB_ACTIVITY_FCT WEB join GMMI_AIR.COUPON_WEB_ACTIVITY C
     on WEB.OID_WEB_ACTIVITY_FCT = C.OID_COUPON_WEB_ACTIVITY
GROUP BY web. OID,web. MARKETING_GROUP;
于 2012-04-19T02:18:24.900 に答える