Commerce Intelligenceでの SQL クエリの翻訳
SQL クエリを で使用する 計算列 、 指標 、および レポート Commerce Intelligence に変換する方法を疑問に思ったことはありませんか? SQL を大量に使用するユーザーの場合は、Commerce Intelligence での SQL の翻訳方法を理解することで、Data Warehouse Manager でよりスマートに作業し Commerce Intelligence プラットフォームを最大限に活用できます。
このトピックの最後には、SQL クエリ句と 要素の 翻訳行列 Commerce Intelligence があります。
まず、一般的なクエリを確認します。
SELECTa,group bySUM(b)Aggregate function (列)FROM cSource テーブルWHEREd IS NOT NULLFilterAND time < XAND time >= Ytime frameGROUP BY agroup byこの例ではほとんどの翻訳ケースをカバーしていますが、例外もあります。 aggregate 関数の翻訳方法から説明します。
集計関数
クエリの集計関数(count、sum、average、max、min など)は、では 指標の集計 または 列の集計 Commerce Intelligence のいずれかの形式を取ります。 差別化要因は、集計を実行するために結合が必要かどうかです。
上記のそれぞれの例を参照してください。
指標の集計 aggregate
within a single table ータを集計する場合は、指標が必要です。 したがって、例えば、上記のクエリの SUM(b) 集計関数は、列の B を合計する指標で表される可能性が高くなります。
Total Revenue での Commerce Intelligence 指標の定義方法に関する、特定の例を見てみましょう。 翻訳を試みる以下のクエリを確認します。
SELECTSUM(order_total) as "Total Revenue"Metric operation (列)FROM ordersMetric source テーブルWHEREemail NOT LIKE '%@magento.com'filterAND created_at < XAND created_at >= Ytimestamp (およびレポート time range)Manage Data > 指標 /新しい指標を作成 をクリックして指標ビルダーに移動します。まず、適切な source テーブル(この場合は orders テーブル)を選択する必要があります。 次に、指標は次のように設定されます。
列の集計
集計列は、別のテーブルから結合されている列を集計する場合に必要です。 例えば、customer テーブルに Customer LTV という列を作成し、その顧客に関連付けられたすべての注文の合計値を orders テーブルに合計するとします。
この集計のクエリは、次のようになります。
Selectc.customer_idSUM(o.order_total) as "Customer LTV"FROM customers cJOIN orders oON c.customer_id = o.customer_idWHERE o.status = 'success'Commerce Intelligence でこれを設定するには、Data Warehouse Manager を使用する必要があります。ここでは、orders と customers のテーブルの間にパスを作成し、顧客のテーブルに Customer LTV という列を作成します。
customers と orders の間に新しいパスを確立する方法を確認します。 最後の目標は、customers テーブルに新しい集計列を作成することです。そのため、まずData Warehouseの customers テーブルに移動し、Create a Column > 定義を選択 /SUM をクリックします。
次に、ソーステーブルを選択する必要があります。 orders テーブルへのパスが存在する場合は、ドロップダウンから選択するだけです。 ただし、新しいパスを作成している場合は、「Create new path」をクリックすると、次の画面が表示されます。
ここでは、結合しようとしている 2 つのテーブル間の関係を慎重に検討する必要があります。 この場合、顧客に関連付けられた注文が Many い可能性があ One ので、orders 側には Many のテーブルが表示され、customers 側には One のテーブルが選択されます。
path は SQL の Join と同等です。パスを保存したら、Customer LTV の列を作成できます。 以下を参照してください。
Customer LTV テーブルに新しい customers 列を作成したので、この列を使用して 指標の集計 を作成する準備が整いました(例えば、顧客あたりの平均 LTV を見つける場合)。 また、group by テーブルに基づいて作成された既存の指標を使用して、レポートの計算列で filter 計または customers 計することもできます。
詳しくは、Data Warehouse Manager で 計算列の作成 を参照してください。
Group By 句
クエリの Group By 関数は、多くの場合、視覚的なレポートのセグメント化やフィルタリングに使用される列として、Commerce Intelligence で表されます。 例として、以前に調べた Total Revenue クエリを再確認しますが、今回は、最も売上高が多いクーポンを理解するために、coupon\_code による売上高をセグメント化します。
以下のクエリから開始します。
SELECT coupon_code,group bySUM(order_total) as "Total Revenue"Metric operation (列)FROM ordersMetric source テーブルWHEREemail NOT LIKE '%@magento.com'filterAND created_at < '2016-12-01'AND created_at >= '2016-09-01'timestamp (およびレポート time range)GROUP BY coupon_codegroup by以前に作成したのと同じ Total Revenue 指標を使用して、クーポンコードでセグメント化された売上高のレポートを作成する準備が整いました。 9 月から 11 月のデータを調べて、このビジュアルレポートを設定する方法を示す以下の gif を見てください。
数式
場合によっては、クエリには、別々の列間の関係を計算するために複数の集計が含まれることがあります。 例えば、次の 2 つの方法のいずれかを使用して、クエリの平均注文値を計算できます。
AVG('order\_total')またはSUM('order\_total')/COUNT('order\_id')
前者の方法では、order\_total 列を平均する新しい指標を作成します。 ただし、Total Revenue と Number of orders を計算するための指標が既に設定されている場合は、後者のメソッドを Report Builder で直接作成できます。
一歩下がって、Average order value のクエリ全体を確認します。
SELECTSUM(order_total) as "Total Revenue"operation (列)COUNT(order_id) as "Number of orders"operation (列)SUM(order_total)/COUNT(order_id) as "Average order value"operation (列)/指標操作(列)FROM orderssource テーブルWHEREemail NOT LIKE '%@magento.com'filterAND created_at < '2016-12-01'AND created_at >= '2016-09-01'ここで、Total Revenue と Number of orders を計算するための指標が既に設定されているとします。 これらの指標は存在するので、Report Builder を開き、Formula の機能を使用してオンデマンド計算を作成するだけです。
まとめ
SQL を大量に使用する場合は、クエリが Commerce Intelligence でどのように翻訳されるかを考えることで、計算列、指標およびレポートを作成できます。
クイックリファレンスについては、以下のマトリックスをご覧ください。 これは、SQL 句の同等の Commerce Intelligence 要素と、クエリでの使用方法に応じて、複数の要素にどのようにマッピングできるかを示します。
Commerce Intelligenceの要素
SQL ClauseMetricFilterReport group byReport time framePathCalculated column inputsSource tableSELECTFROMWHEREWHERE (時間要素を含む)JOIN...ONGROUP BY