プレースメントによって生成された収益を表示する結果を取得しようとしています。プレースメントの収益を計算するには、この計算を行う必要があります (campaign_cpc (ユーロ) * プレースメントによって生成されたクリック数)。1 つのプレースメントで、異なるcampaign_cpc でクリックを生成できます。
現在、私が得ている結果は次のようなものです。
+------------------+---------------------+
| placement_name | placement_revenue_€ |
+------------------+---------------------+
| placement_name_1 | 147,2 |
+------------------+---------------------+
| placement_name_1 | 170,95 |
+------------------+---------------------+
| placement_name_2 | 14,4 |
+------------------+---------------------+
| placement_name_2 | 51,35 |
+------------------+---------------------+
これは、各プレースメント (プレースメント 1 と 2) が 2 つの異なるcampaign_cpc でクリックを生成したためです。
しかし、実際には配置ごとに集計された結果が必要です。
+------------------+---------------------+
| placement_name | placement_revenue_€ |
+------------------+---------------------+
| placement_name_1 | 318,15 |
+------------------+---------------------+
| placement_name_2 | 65,75 |
+------------------+---------------------+
私が使用しているクエリは次のとおりです。
SELECT
placement_name,
campaign_cpc*clicks as placement_revenue_€
FROM (
SELECT
p.name as placement_name,
cc.cpc as campaign_cpc,
COUNT(CASE WHEN re.event_type = 'click'
AND content_card_id IS NOT NULL THEN event_type END) as clicks
FROM raw_events re
JOIN app_data.placements p ON p.id=re.placement_id
JOIN app_data.content_cards cc ON cc.id=re.content_card_id
GROUP BY
cc.cpc,
p.name
)
GROUP BY
placement_name,
clicks
ORDER BY
placement_name
上記のクエリを修正して集計結果を取得するにはどうすればよいですか?
GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)、Redshift 1.0.1337 でコンパイルされた i686-pc-linux-gnu で PostgreSQL 8.0.2 を使用しています
どうもありがとう!
ステートメントを修正して目的の結果を得る方法は、クリックでグループ化しないことです。place_name でのみグループ化します。これにより、異なるクリックで行が区別されなくなり、合計が正しく機能します。また、select ステートメントでクリック数を合計します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加