SHOPLINE QLを使って分析レポートをカスタマイズする方法
SHOPLINE QLは、SHOPLINEでより柔軟なカスタムレポートを作成するための分析検索言語です。SHOPLINE QLを使うと、分析したい指標を選択し、レポートデータをフィルタリングし、結果をディメンションでグループ化し、簡単な計算でカスタム指標を作成できます。
このガイドでは、一般的なSHOPLINE QL用語、基本的な検索構造、よく使われる句、検索例、および重要な使用上の注意点を紹介します。
一般的なSHOPLINE QL用語の理解
このガイドの例を使用する前に、以下の一般的なSHOPLINE QL用語を理解しておくと役立ちます:
| 用語 | 説明 |
| データセット | SHOPLINE QLが検索するデータソース。例えば、salesは売上関連のデータを指します。 |
| 指標 | 売上金額、注文数、純売上などの測定可能な値。 |
| ディメンション | レポートデータをグループ化またはセグメント化するためのフィールド。例えば、日付、商品、ロケーションなど。 |
| 句 |
FROM、VIEW、FILTER、LIMITなど、SHOPLINE QL検索の固定部分。 |
| エイリアス |
ASで割り当てられるフィールドや計算されたカスタムフィールドの表示名で、レポート内で識別しやすくします。 |
| 期間 | 検索が対象とする日付または期間。DURINGまたはSINCE / UNTILで設定できます。 |
| 比較期間 |
COMPAREで生成される比較期間。例えば、前の期間や前年同期など。 |
| 合計 |
EXTEND TOTALSで生成される集計結果。 |
SHOPLINE QLの構造の理解
SHOPLINE QLの検索は句で構成されます。各句は、SHOPLINEにどのデータを検索するか、どのフィールドを表示するか、結果をどのようにフィルタリングまたはグループ化するか、どの期間を使用するかを指示します。
SHOPLINE QLでカスタムレポートを作成する際、各検索には以下を含める必要があります:
-
FROM: データセットを指定します。 -
VIEW: 表示するフィールド、指標、または計算値を指定します。 - 期間:
DURINGを使うか、SINCE/UNTILで日付範囲を指定します。
典型的なSHOPLINE QL検索は以下のようになります:
FROM sales
VIEW total_sales, order_cnt
FILTER payment_status IN ('Payment successful', 'Unpaid')
GROUP BY day
DURING last_30_day
COMPARE previous_period
EXTEND TOTALS
ORDER BY total_sales DESC
LIMIT 20
以下の表は、利用可能なSHOPLINE QLの句とその目的をまとめたものです。句名をクリックすると、詳細と例がある専用セクションに移動します。
句 |
説明 |
FROM |
クエリを実行するデータセットを指定します。例えば、salesは売上関連のデータを指します。 |
VIEW |
レポートに表示する指標、フィールド、または計算値を指定します。 |
FILTER |
データをフィルタリングし、レポートに一致する履歴のみを含めます。 |
POSTFILTER |
指標が計算された後に結果をフィルタリングします。例えば、売上が特定の金額を超えるグループ化された結果のみを表示できます。 |
GROUP BY |
日付、商品、ロケーションなどの次元でデータをグループ化します。 |
DURING |
今日、過去30日間、今月などのプリセットされた期間を使用します。 |
SINCE / UNTIL |
特定の開始時間と終了時間を使用します。 |
COMPARE |
選択した期間を前の期間または前年同期と比較します。 |
EXTEND TOTALS |
レポート結果に合計のサマリーを追加します。 |
ORDER BY |
結果を並べ替えます。現在、各クエリは1つのフィールドによる並べ替えをサポートしています。 |
LIMIT |
クエリで返されるrowの数を制限します。 |
OFFSET |
指定した数の行をスキップします。これは通常、LIMITと一緒に使用されます。 |
| 注: 大文字の句を使用し、各句を別々の行に配置してください。これにより、クエリの読みやすさ、レビュー、保守が容易になります。 |
カスタムレポートでのSHOPLINE QLの設定
カスタムレポートの作成または編集時にSHOPLINE QLを入力して実行できます。SHOPLINE QLエディターを使用してクエリを作成し、保存前にレポート結果をプレビューしてください。
カスタムレポートでSHOPLINE QLを設定するには:
- SHOPLINE管理画面で、分析 > レポートに移動します。
- カスタムレポートを作成をクリックして新しいレポートを作成するか、既存のカスタムレポートを開いて修正します。
- レポート名を入力します。レポート名は一意である必要があります。既に存在する場合は、名前の変更を求められます。
- ドロップダウンリストからデータセットを選択します。現在、新規作成されたカスタムレポートは販売データのみをサポートしています。
- 次へをクリックし、レポートエディターでSHOPLINE QLエディターにクエリを入力します。
- 実行をクリックしてレポート結果をプレビューします。
- プレビューを確認し、結果が正しければレポートを保存します。
注: クエリが解析できない場合やプレビューが期待した結果を返さない場合は、クエリにFROM、VIEW、および期間が含まれていること、すべてのフィールド名、句読点、引用符が正しく入力されていることを確認してください。 |
クエリでのSHOPLINE QL句の使用
以下のセクションでは、最も一般的に使用されるSHOPLINE QL句の目的、構文、および使用例について説明します。
FROM と VIEW
FROMはクエリ対象のデータセットを指定します。VIEWはレポートに表示したいフィールド、指標、または計算値を指定します。
例えば、本日の売上を表示するには:
FROM sales
VIEW total_sales
DURING today同じレポートで複数の指標を表示することもできます:
FROM sales
VIEW total_sales, net_sales, order_cnt
DURING last_7_day既存の指標を基に新しい指標を作成するには、VIEW内で算術演算子を使用し、ASで新しい指標名を付けます。
例えば、平均注文額を計算するには:
FROM sales
VIEW (net_sales / order_cnt) AS average_order_value
DURING last_month例えば、総売上と割引に基づいて調整後売上を計算するには:
FROM sales
VIEW (gross_sales - discounts) AS adjusted_sales
DURING last_monthSHOPLINE QLは以下の算術演算子をサポートしています:
| 演算子 | 説明 |
* |
乗算 |
/ |
除算 |
+ |
加算 |
- |
減算 |
計算フィールドに複数の演算子が含まれる場合、乗算と除算は加算と減算より先に計算されます。計算の順序を制御するために括弧を使用することもできます。
例えば、調整後の売上を最初に計算し、その結果を注文数で割るには:
FROM sales
VIEW ((gross_sales - discounts) / order_cnt) AS average_adjusted_sales
DURING last_month
注: 計算フィールドを使用する場合は、新しいフィールドに名前を付けるために AS を使用してください。同じレポート内のフィールド名は一意でなければなりません。 |
FILTER
FILTER は指標が計算される前にデータを絞り込みます。特定のステータス、商品、ロケーション、またはその他の条件に一致する履歴のみを含めるために使用できます。
例えば、支払いが成功した売上のみを表示するには:
FROM sales
VIEW total_sales
FILTER payment_status IN ('Payment successful')
DURING today例えば、名前に shirt を含む商品の売上を表示するには:
FROM sales
VIEW total_sales, order_cnt
FILTER product_spu_name CONTAINS ('shirt')
DURING last_30_dayFILTER は以下の比較演算子をサポートしています:
| 演算子 | 説明 |
= |
等しい |
!= |
等しくない |
<> |
等しくない |
> |
より大きい |
< |
より小さい |
>= |
以上 |
<= |
以下 |
例えば、売上が 100 より大きい履歴のみを含めるには:
FROM sales
VIEW total_sales
FILTER total_sales > 100
DURING last_30_dayまた、複数のフィルター条件を組み合わせるために AND、OR、NOT を使用したり、特定の値に一致させるために IN、NOT IN、CONTAINS、NOT CONTAINS を使用することもできます。
例えば、支払いが成功したものを含め、特定の顧客タイプを除外するには:
FROM sales
VIEW total_sales
FILTER (payment_status IN ('Payment successful')) AND NOT buyer_type IN ('New customer', 'Returning customer')
DURING today例えば、特定の注文ステータスの注文を除外するには:
FROM sales
VIEW total_sales
FILTER order_status NOT IN ('Completed', 'Shipped')
DURING today
注:文字列の値は、'shirt' や 'Payment successful' のようにシングルクォーテーションマークを使用する必要があります。中国語の引用符や他の引用符形式を使用すると、検索が失敗する可能性があります。 |
POSTFILTER
POSTFILTER は、指標が計算された後に結果をフィルタリングします。これは、最初にデータをグループ化し、その後特定の条件を満たすグループ化された結果のみを保持したい場合に便利です。
例えば、過去30日間の州/省別の売上を表示し、売上が 1000 を超えるロケーションのみを表示するには:
FROM sales
VIEW total_sales
GROUP BY province
DURING last_30_day
POSTFILTER total_sales > 1000FILTER と POSTFILTER は異なる段階で適用されます。FILTER は指標が計算される前の元データをフィルタリングし、POSTFILTER は指標が生成された後の計算結果をフィルタリングします。
例えば、最初に各州/省の売上を計算し、その後特定の金額に達したロケーションのみを表示したい場合は、POSTFILTER を使用します。
GROUP BY
GROUP BY は、ディメンションごとにレポートデータをグループ化します。GROUP BY がない場合、レポートは通常、集計結果を返します。GROUP BY を追加すると、指定したディメンションごとに結果が分解されます。
例えば、過去30日間の日別売上を表示するには:
FROM sales
VIEW total_sales
GROUP BY day
DURING last_30_day例えば、過去30日間の州/省および市別の売上を表示するには:
FROM sales
VIEW total_sales
GROUP BY province, city
DURING last_30_day一般的な時間ディメンションには以下があります:
| ディメンション | 説明 |
hour |
時間ごとにデータをグループ化します。 |
day |
日ごとにデータをグループ化します。 |
week |
週ごとにデータをグループ化します。 |
month |
月ごとにデータをグループ化します。 |
quarter |
四半期ごとにデータをグループ化します。 |
year |
年ごとにデータをグループ化します。 |
hour_of_day |
1日の時間ごとにデータをグループ化します。 |
day_of_week |
曜日ごとにデータをグループ化します。 |
week_of_year |
年の週ごとにデータをグループ化します。 |
month_of_year |
年の月ごとにデータをグループ化します。 |
DURING, SINCE, and UNTIL
各SHOPLINE QL検索には時間範囲を含める必要があります。DURING を使ってプリセットの時間範囲を選択するか、SINCE と UNTIL を使って正確な日付を指定します。
プリセットの時間範囲を使うには:
FROM sales
VIEW total_sales
DURING last_30_day特定の日付範囲を使うには:
FROM sales
VIEW total_sales
SINCE '2026-05-01' UNTIL '2026-05-31'日付と時間の両方を指定するには:
FROM sales
VIEW total_sales
SINCE '2026-05-01 00:00:00' UNTIL '2026-05-31 23:59:59'一般的なDURINGの時間範囲には以下が含まれます:
| 範囲 | 説明 |
today |
今日。 |
yesterday |
昨日。 |
last_24_hour |
直近の24時間すべて。 |
last_7_day |
今日を除く直近7日間。 |
last_30_day |
今日を除く直近30日間。 |
last_90_day |
今日を除く直近90日間。 |
this_week |
今週。 |
this_month |
今月。 |
last_month |
先月。 |
this_quarter |
今四半期。 |
last_quarter |
前四半期。 |
this_year |
今年。 |
last_year |
昨年。 |
注: 特定の日付にはSINCEとUNTILを使用してください。DURINGはサポートされているプリセットの時間範囲でのみ使用してください。 |
COMPARE
COMPAREは選択した時間範囲を別の時間範囲と比較します。
例えば、直近30日間のデータを前の期間と比較するには:
FROM sales
VIEW total_sales
GROUP BY day
DURING last_30_day
COMPARE previous_period現在サポートされている比較タイプは以下の通りです:
| 比較タイプ | 説明 |
previous_period |
選択した範囲を同じ長さの前の期間と比較します。 |
previous_year |
選択した範囲を前年の同じ期間と比較します。 |
EXTEND TOTALS
EXTEND TOTALSはレポート結果に集計合計を追加します。これはロケーション、商品、または他のディメンションでデータをグループ化し、全体の合計も見たい場合に便利です。
例えば、直近30日間の州/県別の売上を表示し、集計合計を含めるには:
FROM sales
VIEW total_sales, order_cnt
GROUP BY province
DURING last_30_day
EXTEND TOTALS
注: 現在、EXTENDはTOTALSのみをサポートしています。サポートされていない形式を使用するとクエリが失敗する可能性があります。 |
ORDER BY, LIMIT, and OFFSET
ORDER BYは結果を並べ替えます。LIMITはクエリで返される行数を制御します。OFFSETは指定した行数をスキップし、通常はLIMITと一緒に使用されます。
例えば、過去30日間の売上で上位10商品を表示するには:
FROM sales
VIEW total_sales, order_cnt
GROUP BY product_spu_name
DURING last_30_day
ORDER BY total_sales DESC
LIMIT 10ASC は結果を低い順に並べ替えます。DESC は結果を高い順に並べ替えます。
最初の40行をスキップして次の20行を表示するには:
FROM sales
VIEW total_sales
GROUP BY product_spu_name
DURING last_30_day
ORDER BY total_sales DESC
LIMIT 20
OFFSET 40
注: 現在、各検索は1つのフィールドによる並べ替えをサポートしています。ORDER BYで使用されるフィールドは、すでにVIEWまたはGROUP BYに表示されている必要があります。 |
よく使われるSHOPLINE QLの例
以下の例はカスタムレポート作成の参考になります。指標、ディメンション、フィルター、または期間をレポートのニーズに応じて調整できます。
過去30日間の売上による売れ筋商品を見る
FROM sales
VIEW total_sales, order_cnt
GROUP BY product_spu_name
DURING last_30_day
ORDER BY total_sales DESC
LIMIT 10
日別売上トレンドを見て前期間と比較する
FROM sales
VIEW total_sales, net_sales
GROUP BY day
DURING last_30_day
COMPARE previous_period
ORDER BY day ASC
LIMIT 30
商品名で売上データをフィルターする
FROM sales
VIEW total_sales, order_cnt
FILTER product_spu_name CONTAINS ('shirt')
GROUP BY product_spu_name
DURING last_7_day
ORDER BY total_sales DESC
LIMIT 20
今月の州/県別売上概要を見る
FROM sales
VIEW total_sales, order_cnt
GROUP BY province
DURING this_month
EXTEND TOTALS
ORDER BY total_sales DESC
LIMIT 50
州/県別に計算結果をフィルターする
FROM sales
VIEW total_sales
GROUP BY province
DURING last_30_day
POSTFILTER total_sales > 1000
特定の日付範囲の売上データを見る
FROM sales
VIEW total_sales
FILTER payment_status IN ('success', 'failed')
SINCE '2026-05-01 00:00:00' UNTIL '2026-05-20 23:59:59'
SHOPLINE QLを使用する際の重要な注意点
SHOPLINE QLでカスタムレポートを作成する前に、以下のルールを覚えておいてください:
SHOPLINE QLでカスタムレポートを作成する前に、以下のルールを覚えておいてください:
- 各クエリには
FROM、VIEW、および1つの期間指定が含まれている必要があります。 - 大文字の句を使用し、各句は別々の行に配置してください。
- 文字列の値はシングルクォーテーションで囲む必要があります。
- 計算フィールドを使用する場合は、
ASを使ってフィールド名を付けてください。 - 同じレポート内のフィールド名は一意でなければなりません。
- 現在、
VIEW内の計算フィールドは加算、減算、乗算、除算をサポートしています。関数呼び出しはサポートされていません。 - 現在、各
ORDER BY句は1つのフィールドによる並べ替えをサポートしています。 -
ORDER BYで使用するフィールドは、すでにVIEWまたはGROUP BYに表示されている必要があります。 -
LIMITが設定されていない場合、システムはデフォルトで最大2000行を返します。 - エクスポート以外のシナリオでは、
LIMITは2000を超えないようにしてください。 - 現在、
EXTENDはTOTALSをサポートしています。 - 現在、
COMPAREはprevious_periodとprevious_yearをサポートしています。 - サポートされているプリセット期間には
DURINGを使用し、特定の日付にはSINCEとUNTILを使用してください。 - クエリの期間は3年以内にしてください。
- まずはシンプルなクエリから始めてください。結果が正しいことを確認した後、フィルター、グループ化、比較、計算フィールドを徐々に追加できます。
Q: SHOPLINE QLは私のストアデータを変更しますか?
いいえ。SHOPLINE QLは分析レポートデータのクエリと表示にのみ使用されます。注文、商品、顧客、または販売履歴を変更することはありません。
Q: いつSHOPLINE QLを使うべきですか?
レポート設定により柔軟性が必要な場合にSHOPLINE QLを使用してください。例えば、指標の定義をカスタマイズしたり、複数のフィルター条件を組み合わせたり、特定の次元で販売データをグループ化したりできます。
Q: SHOPLINE QLで新しい指標を定義できますか?
はい。既存の指標を基に加算、減算、乗算、除算を使って新しい指標を計算し、ASで新しい指標名を付けることができます。例えば、純売上を注文数で割って平均注文額を計算できます。
Q: なぜ私のSHOPLINE QLクエリは失敗しましたか?
よくある原因は、フィールド名の誤り、期間指定の欠如、名前のない計算フィールド、重複したフィールド名、またはサポートされていない構文です。まずFROM、VIEW、期間指定が正しいか確認し、次にフィールド名や句読点が正しいか確認してください。
Q: SHOPLINE QLで特定の日付範囲のデータを表示できますか?
はい。SINCE と UNTIL を使って開始時間と終了時間を指定します。例えば、2026年5月1日から2026年5月31日までのデータを表示できます。
Q: レポートで返される行数に制限はありますか?
はい。LIMIT を使ってクエリで返される行数を制御します。LIMIT が設定されていない場合、システムはデフォルトの行数を返します。
レポートページの読み込みをスムーズに保つために、一部のチャートやテーブルではページに表示される行数を制限することがあります。プレビューで全ての結果が表示されない場合は、レポートデータをエクスポートしてより完全なデータを確認してください。
この記事はAIを使用して翻訳されており、不正確な箇所が含まれている可能性があります。最も正確な情報については、元の英語版をご参照ください。