2017-11-16 3 views
0

SQLに関してはいつも気分が悪いです。次のようにデバイスの詳細を持っているグループ照会と結合を使用して複数のテーブルから詳細をフェッチするクエリ

Revenue Table 
Clicks 
impressions 
ad_id 
device_id 
money_generated 
date 

別のテーブル::

Devices 
device_id 
device_name 

つ以上のテーブルの広告は

Ads Table 
ad_name 
ad_id 
---- 

...と言う私は、2つのテーブルを持って、以下の構造を有している表の売上高は言います今私が欲しいのは、特定の日付の間に特定の広告に対して特定のデバイスによって生成されたインプレッション、クリック、金額の合計を取り出すことです。

収益&のデバイステーブルをリンクするこのクエリを試しましたが失敗しました。

select 
    device_name, 
    revenue.impressions, 
    revenue.clicks, 
    revenue.money_generated, 
    revenue.ad_id 
FROM 
    (select 
     device_id, 
     dim_ad_id, 
     SUM(imp_count) as impressions, 
     SUM(click_count) as clicks, 
     SUM(money_generated) as revenue, 
    from 
     revenue 
    GROUP BY 
     ad_id 
    GROUP BY 
     device_id 
    WHERE 
     dim_Date>'2017-11-02 10:33:00' 
     and dim_date<'2017-11-08 00:56:22') revenue 
JOIN deviceTable as devices ON 
devices.device_id=revenue.device_id 
and devices.device_name IN ('ABC') 

ここに貼り付ける前に名前を変更したので、列名の間違いを無視してください。

+0

文が実行されますか?私はそれが誤りでなければ驚くでしょう。 – Eric

答えて

1

構文エラーをスローする派生テーブルに2つのGROUP BY句があります。

select 
    device_name, 
    revenue.impressions, 
    revenue.clicks, 
    revenue.money_generated, 
    revenue.ad_id 
FROM 
    (select 
     device_id, 
     dim_ad_id, 
     SUM(imp_count) as impressions, 
     SUM(click_count) as clicks, 
     SUM(money_generated) as revenue, 
    from 
     revenue 
    GROUP BY 
     ad_id, device_id  --fixed syntax here 
    WHERE 
     dim_Date>'2017-11-02 10:33:00' 
     and dim_date<'2017-11-08 00:56:22') revenue 
JOIN 
    deviceTable as devices ON 
    devices.device_id = revenue.device_id 
    and devices.device_name IN ('ABC') 
LEFT JOIN 
    Ads on 
    Ads.ad_id = revenue.dim_id --or what ever it should be 
+0

ああ男の子!私の悪い..私はしようと戻って取得:)すぐに返信いただきありがとうございます。それはここの真夜中です。このsqlsは私を殺しています – user3681970

+0

Bro ..すばらしい:)私たちは2つのテーブルにつながっています。どのように広告情報を取り込むために広告テーブルに参加するのですか?ちょうど良い一例shud ..私は同様の方法でremaning 4-5テーブルに参加します – user3681970

+0

上記のすべてのクエリを1つの仮想テーブルとして想定し、広告テーブルとリンクする必要がありますか?一例がすべてのことを説明します – user3681970

関連する問題