Snowflakeで分析するSalesforce CRMデータ: 取引先/会計年度ごとの売上を出力する
前回のポストではSnowflakeに同期するべきSalesforce CRMのデータを紹介しました。今回はそれらのデータを用いて、実際にSnowflake上でレポートを出力してみたいと思います。
今回は「取引先/会計年度ごとの売上」を出力してみたいと思います。単純な売上出力なので本来はSalesforce CRMの標準レポート機能で充分なのですが、Snowflake上でSalesforce CRMのデータを用いたレポート出力の最初の一歩として試してみましょう。
前提
SalesforceのオブジェクトはSnowflakeの同一スキーマに存在しているものとします。
テーブル名およびカラム名はスネークケースで登録してるものとします。
それでは実際のSQLを確認してみましょう。
SQL
SELECT
a.name AS "Account Name",
o.fiscal_year AS "Fiscal Year",
SUM(o.amount) AS "Total Sales",
FROM
opportunity o
INNER JOIN account a ON a.id = o.account_id
INNER JOIN user u ON o.owner_id = u.id
WHERE
o.probability = 100
GROUP BY
a.name,
o.fiscal_year
ORDER BY
a.name,
o.fiscal_year;
簡単な解説
取引先の情報はAccountオブジェクトに、実際の取引を示す商談の情報はOpportunityオブジェクトに存在します。
Opportunityオブジェクトはaccout_idとしてAccountの外部キーを有しています。この外部キーを用いてAccountオブジェクトとINNER JOINします。
ただし、Opportunityオブジェクトは成立した取引だけでなく、失注した取引の情報も有しています。そのため、Probabilityが100のレコードのみをフィルタしています。
以上、簡単でしたね。今後もこのように、カジュアルにSQLのサンプルを紹介していく予定です。