ShopifyQLクエリエディタを使用する
新しいShopifyストア分析でShopifyQLを使用すれば、自身のビジネスのデータベースを検索してデータを取得し、ビジネスへの理解を深めることができます。
ShopifyQLは「Shopify Query Language」の略語であり、コマース向けに構築されたShopifyのクエリ言語です。クエリ言語は、データをデータベースからリクエストして取得するために使用します。ストアのデータは、定義された列と行で構造化されたデータベーステーブルに格納されます。列では、売上など格納している情報のタイプを定義し、行では、売上2,450米ドルなど、データタイプの実際の値を指定します。
データを有意味な形式で取得するには、「クエリ」をデータベースに送信する必要があります。クエリとは、「キーワード」とそれに対応する「パラメーター」で構成された、特定のデータを回答として求める質問です。クエリは、特定のパラメーターを伴うさまざまなキーワードの組み合わせで作成されます。クエリを作成したら、実行してレポートを受け取ることができます。
用語集
キーワード | 定義 |
---|---|
ディメンション | データを分割して分類し、明確に表示できるようにする属性。ディメンションの一般的な例としては、時間、商品、場所などがあります。ディメンションは、ShopifyQLでパラメーターとして使用されます。 |
キーワード | クエリを指示するコマンドとして機能するShopifyQL構文。 |
指標 | データの定量的測定。指標の一般的な例には、販売合計、注文数、売上総利益が含まれます。 |
パラメーター | クエリに含めるデータベースの要素や仕様を識別するShopifyQL 構文。 |
演算子 | クエリの一部として使用される予約済みの単語または文字。例:STARTS WITH 、>= 、last_week 。 |
ShopifyQLの構文
ShopifyQLを使用して有効なレポートクエリを作成するには、以下の要件を満たす必要があります。
- クエリは全体を1行に配置することも、複数行に分けて配置することもできます。
- 少なくとも、
FROM
とSHOW
のキーワードを、適切なパラメーターとともに記載する必要があります。その他のキーワードおよびパラメーターはすべて任意です。 - クエリ内のすべてのキーワードは、次の順序で記載する必要があります。
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
WITH
TOTALS
、GROUP_TOTALS
、PERCENT_CHANGE
-
TIMESERIES
-
HAVING
-
SINCE
およびUNTIL
、またはDURING
-
COMPARE TO
および任意でUNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
およびTYPE
-
以下は、正しい構文を使用してクエリとして記述されたShopifyQLの例です。キーワードは太字で表記され、それに対応するパラメーターは汎用的なプレースホルダーで記載されています。任意のパラメーターは括弧内に表記されています。
ShopifyQLのキーワード
ShopifyQLクエリでは、高レベルのデータインサイトが得られる基本的なクエリから、詳細なインサイトが得られる包括的なクエリまでを利用できます。各キーワードには、クエリを構築する特定の機能があります。
キーワード | 説明 |
---|---|
FROM | データを選択するデータセットテーブルを指定します。 |
SHOW | データセットテーブルから抽出する列を選択します。 |
WHERE | 選択する行が満たす必要のある条件を定義します。 |
GROUP BY | 抽出されたデータをディメンションまたは時間ディメンションでグループ化します。 |
WITH | 特定のShopifyQLキーワードの動作を変更します。 |
TIMESERIES | 時間ディメンションによるグループ化を区別し、クエリ内の日付をバックフィルします。 |
HAVING | グループ化された後のクエリの結果を絞り込みます。 |
SINCE | 過去の指定した時間からのデータを表示します。多くの場合、UNTIL との組み合わせで使用されます。 |
UNTIL | 過去の指定された時間までのデータを表示します。多くの場合、SINCE またはCOMPARE TO との組み合わせで使用されます。 |
DURING | 過去の指定した期間中のデータを表示します。 |
COMPARE TO | 過去の指定した時間と比較するためにデータを表示します。 |
ORDER BY | データを配列する基準にする列を指定します。 |
LIMIT | 表示されるデータの行数を制限します。 |
VISUALIZE | 折れ線グラフや棒グラフで視覚化したデータを表示します。TYPE で表示形式を指定できます。 |
AS | 列の名前を選択した名前に変更する任意のキーワードです。 |
FROMとSHOW
最も簡単なShopifyQLクエリは、FROM
とSHOW
の順序で記述する2つのキーワードだけで作成できます。後ろに1つ以上のテーブル名パラメーターが続くFROM
を使用すると、クエリを実行するテーブルが指定されます。後ろに任意の数の列名パラメーターが続くSHOW
を使用すると、選択する列が指定されます。
SHOW
は、レポート内で指標とディメンションが返される順序を指定するために使用できます。
たとえば、以下のクエリを記述することで、販売合計を返すことができます。
WHERE
WHERE
キーワードを使用すると、ShopifyQLクエリ全体をディメンションで絞り込むことができます。絞り込みは、比較演算子 (>
(より大きい) など)、論理演算子 (AND
、NOT
など)、部分的な文字列および配列の一致 (STARTS WITH
、CONTAINS
など) によっ て変更できます。
WHERE
条件は、以下の要件を満たす必要があります。
- 値は二重引用符 (") ではなく、単一引用符 (') で囲む必要があります。
- 条件に算術演算を使用することはできません。
- 条件はディメンションのみを参照でき、指標は参照できません。
たとえば、販売合計を返したいが、請求先の国に基づいて絞り込みたい場合、クエリは以下のようになります。
上記の例のように、SHOW
キーワードにWHERE
パラメーターが含まれていない場合でも、このパラメーターを使用して結果セットを絞り込むことができます。この場合、billing_country
は結果セットに含まれていませんが、カナダからの注文のみを対象に販売合計が絞り込まれます。
比較演算子
WHERE
キーワードでは、比較演算子を使用してデータを絞り込みます。上記の例では「=
」を使用して、クエリの結果を特定の値で絞り込むように指定していましたが、他にも以下に示す演算子を利用できます。
比較 演算子 | 説明 |
---|---|
= | 一致 |
!= | 一致しない |
< | より小さい |
> | より大きい |
<= | 以下 |
>= | 以上 |
論理演算子
データをさらに絞り込むには、クエリに論理演算子を追加します。次に示すのは、ShopifyQLの論理演算子です。
論理演算子 | 説明 |
---|---|
AND |
AND で区切られた条件を満たしたすべての行が含まれるように絞り込みます。 |
OR |
OR で区切られたいずれかの条件を満たしたすべての行が含まれるように絞り込みます。 |
NOT | 指定された値を含まない行など、条件を満たしていない行のみが含まれるように絞り込みます。 |
論理演算子を追加すると、WHERE
キーワードで複数の絞り込みを使用することができます。
データセットクエリの例に加えて、請求先住所がカナダにあり、ディスカウントが適用された、ドライピーチ (Dried Peaches) を含むすべての注文の純売上高を月ごとにグループ化するには、次のクエリを実行します。
GROUP BY
地域別のグループ分けした販売高などのように、指標をディメンション別に分割化する場合、GROUP BY
キーワードを使用します。GROUP BY
キーワードは、どのディメンションパラメーターと組み合わせることができます。
たとえば、請求先の国や地域で販売合計をグループ化するクエリは、次のように記述します。
以下に示すのは、時間ディメンションを使用して月別の販売合計を表示するクエリの例です。
上記のクエリを送信しても、販売がない月からは結果が返されません。連続した完全な期間の結果を返すクエリが必要な場合は、以下のようにTIMESERIES
キーワードを使用します。
時間ディメンション
次に示すのは、データをグループ化するために使用できる時間ディメンションです。
演算子 | 説明 |
---|---|
second | 時間の秒単位でグループ化します。 |
minute | 時間の分単位でグループ化 します。 |
hour | 暦日の時間単位でグループ化します。 |
day | 暦日でグループ化します。 |
week | 暦週でグループ化します。 |
month | 暦月でグループ化します。 |
quarter | 四半期でグループ化します。 |
year | 暦年でグループ化します。 |
hour_of_day | 24時間単位の時間でグループ化します (1、2、...、24)。 |
day_of_week | 曜日でグループ化します (M、T、W、...、S)。 |
week_of_year | 年の週番号でグループ化します (1、2、...、52)。 |
month_of_year | 年の月番号でグループ化します (1、2、...、12)。 |
TIMESERIES
TIMESERIES
キーワードを使用すれば、時間ディメンションによるグループ化を区別し、時間の経過による指標を表示し、クエリ内の日付をバックフィルしてデータが存在しない時系列グラフに変換することができます。
この例では、過去15日間の販売合計データが欠落しているもの をバックフィルしています。
TIMESERIESと列の順序
TIMESERIES
が指定されているかどうか、また、このキーワードがGROUP BY
またはSHOW
の値に存在するかどうかによって、列の順序は変化します。
TIMESERIES | SHOW | GROUP BY | 結果 |
---|---|---|---|
指定あり | 存在せず | 存在せず |
TIMESERIES が最初のディメンションになる。 |
指定あり | 存在せず | 存在する | 時間ディメンションの位置は、GROUP BY における位置によって定義される。 |
指定あり | 存在する | 存在する | 時間ディメンションの位置は、SHOW における位置によって定義される。 |
指定なし | 存在せず | 存在する | 時間ディメンションの位置は、GROUP BY における位置によって 定義される。データはバックフィルされない。 |
指定なし | 存在する | 存在する | 時間ディメンションの位置は、SHOW における位置によって定義される。データはバックフィルされない。 |
指定なし | 存在する | 存在せず |
SHOW が参照できるのはGROUP BY に存在するディメンションのみであるため、構文エラーがトリガーされる。 |
HAVING
WHERE
と同様に、HAVING
キーワードを使用すれば、グループ化された後のクエリの結果を絞り込むことができます。この絞り込みで指定できる条件は1つですが、その条件は比較演算子 (>
(より大きい) など) や論理演算子 (AND
、NOT
など) の両方で変更できます。WHERE
とは異なり、HAVING
はエイリアス、集計関数、グループ化の列を参照できます。
HAVING
は、GROUP BY
節またはTIMESERIES
節がクエリに記載されていることを求めます。これは、HAVING
がGROUP BY
またはTIMESERIES
によってグループ化された後のクエリの結果を絞り込むためです。
この例では、販売合計が1000より大きく5000未満である各商品の販売合計を絞り込んでいます。
WITH
WITH
キーワードでは、特定の他のShopifyQLキーワードの動作を変更します。動作を変更できるキーワードは以下の3つです。
-
TOTALS
:指標をディメンションごとに分類する前に、その指標のトップレベルの概要を確認できるようになります。 -
GROUP_TOTALS
:集計するグループがある場合に、すべてのサブグループの合計値を確認できるようになります。 -
PERCENT_CHANGE
:COMPARE TO
の各比較列に、変化率の指標を追加できるようになります。この変更が行われる場合、変化率を含む新しい列が各比較指標列に追加されます。
TOTALS
TOTALS
修飾子を使用すると、指標を他のディメンションごとに分類する前に、その指標のトップレベルの概要を確認できます。WITH TOTALS
を使用した場合、クエリは結果セットに追加の列として合計を返します。列名には、指標名と「totals」が含まれます。各行には、該当するすべての合計が記載されます。
たとえば、このクエリでは販売合計の合計が表示されます。
このクエリは以下のようなレポートを返します。
日 | 総売上高 | 純売上高 | 販売合計 | 総売上高 (合計) | 純売上高 (合計) | 販売合計 (合計) |
---|---|---|---|---|---|---|
2024-01-01 | 1 | 4 | 7 | 6 | 15 | 24 |
2024-01-02 | 2 | 5 | 8 | 6 | 15 | 24 |
2024-01-03 | 3 | 6 | 9 | 6 | 15 | 24 |
GROUP_TOTALS
GROUP_TOTALS
修飾子を使用すると、集計するグループがある場合に、すべてのサブグループの合計値を確認できます。WITH GROUP_TOTALS
を使用した場合、クエリは結果セットに追加の列として合計を返します。列名には、指標名、合計されるディメンション、「totals」が含まれます。各行には、該当するすべての合計が記載されます。
たとえば、このクエリでは請求先の国ごとに販売合計の合計が表示されます。
このクエリは以下のようなレポートを返します。
国 | お客様ID | 販売合計 | 販売合計の国別合計 | 販売合計 (合計) |
---|---|---|---|---|
アメリカ | 1 | 1 | 0 | 1 |
アメリカ | null | -1 | 1 | 1 |
カナダ | 1 | 1 | 1 | 1 |
PERCENT_CHANGE
PERCENT_CHANGE
修飾子を使用すると、COMPARE TO
を使用したときの各比較列に、変化率の指標を追加できます。WITH PERCENT_CHANGE
を使用した場合、クエリは結果セットに追加の列として各比較指標の変化率を返します。列名には、指標名と「変化率」が含まれます。
変化率の計算には、次の式が使用されます。 (base_column - comparison_column) * 100 / abs(comparison_column)
たとえば、以下のクエリでは、SINCE
とCOMPARE TO
を使用して、前月の1日あたりの純売上高を前年の同じ月と比較します。変化率を示す列も追加されます。
得られるレポートの列には、日、純売上高、比較日、比較純売上高、純売上高変化率が記載されます。
SINCEとUNTIL
クエリを日付または一定の期間で絞り込む場合、SINCE
およびUNTIL
のキーワードと関連するパラメーターを使用できます。このように期間のみを絞り込むキーワードは、他にありません。SINCE
を使用しながらUNTIL
を定義しなかった場合、時間範囲の終了時点はデフォルトではtoday
になります。
たとえば、以下のクエリでは、昨日を最終日としてカナダでの過去12か月間の純売上高を取得します。
オフセット演算子
特定の日 付、または日時のオフセットで絞り込むことができます。以下に示すのは、ShopifyQLのオフセット演算子です。
オフセット演算子 | 説明 |
---|---|
-{#}s | クエリを実行した日時からさかのぼった秒数。 |
-{#}min | クエリを実行した日時からさかのぼった分数。 |
-{#}h | クエリを実行した日時からさかのぼった時間数。 |
-{#}d | クエリを実行した日時からさかのぼった日数。 |
-{#}w | クエリを実行した日時からさかのぼった週数。 |
-{#}m | クエリを実行した日時からさかのぼった月数。 |
-{#}q | クエリを実行した日時からさかのぼった四半期数。 |
-{#}y | クエリを実行した日時からさかのぼった年数。 |
yyyy-MM-dd | 特定の日付。 |
yyyy-MM-ddThh:mm:ss | 特定の日時。 |
日付関数
SINCE
およびUNTIL
ステートメントでは、任意の日付範囲を指定する演算子 (特定の日付を除く) と組み合わせた以下の関数を使用できます。「startOf...
」関数は、SINCE
と組み合わせて使用すると、関連する時間単位 (分、時間、日、週、月、四半期、年) の開始時点に切り詰められ、「endOf...
」関数は、UNTIL
と組み合わせて使用すると、関連する時間単位の終了時点に切り詰められます。
有効な結果を返すには、日付関数の単位と演算子の単位を一致させる必要があります。たとえば、startOfMonth(-1m)
は正しいですが、startOfMonth(-1d)
は正しくありません。
日付関数 | 説明 |
---|---|
now | クエリを実行した日時。 |
startOfMinute(-{#}min) | 日付範囲を指定する演算子を、対象の分単位の開始時刻に切り詰めます。 |
endOfMinute(-{#}min) | 日付範囲を指定する演算子を、対象の分単位の終了時刻に切り詰めます。 |
startOfHour(-{#}h) | 日付範囲を指定する演算子を、対象の時間単位の開始時刻に切り詰めます。 |
endOfHour(-{#}h) | 日付範囲を指定する演算子を、対象の時間単位の終了時刻に切り詰めます。 |
startOfDay(-{#}d) | 日付範囲を指定する演算子を、対象の日単位の開始時刻に切り詰めます。 |
endOfDay(-{#}d) | 日付範囲を指定する演算子を、対象の日単位の終了時刻に切り詰めます。 | startOfWeek(-{#}w) | 日付範囲を指定する演算子を、対象の週単位の開始時刻に切り詰めます。 |
endOfWeek(-{#}w) | 日付範囲を指定する演算子を、対象の週単位の終了時刻に切り詰めます。 |
startOfMonth(-{#}m) | 日付範囲を指定する演算子を、対象の月単位の開始時刻に切り詰めます。 |
endOfMonth(-{#}m) | 日付範囲を指定する演算子を、対象の月単位の終了時刻に切り詰めます。 |
startOfQuarter(-{#}q) | 日付範囲を指定する演算子を、対象の四半期単位の開始時刻に切り詰めます。 |
endOfQuarter(-{#}q) | 日付範囲を指定する演算子を、対象の四半期単位の終了時刻に切り詰めます。 |
startOfYear(-{#}y) | 日付範囲を指定する演算子を、対象の年単位の開始時刻に切り詰めます。 |
endOfYear(-{#}y) | 日付範囲を指定する演算子を、対象の年単位の終了時刻に切り詰めます。 |
たとえば、今日が2022年11月8日である場合、以下のようなクエリを使用することにより、2020年1月1日から2022年10月31日までの総売上高を返すことができます。
DURING
DURING
キーワードを使用すると、日付範囲での日付絞り込みが簡単になります。このキーワードは、SINCE
とUNTIL
の代わりに使用できます。DURING
キーワードを使用して、既知の期間 (暦年や特定の月など)、または毎年異なる日程の日付範囲 (ブラックフライデー・サイバーマンデーなど) でクエリ結果を絞り込むことができます。以下はその例です。
名前付きの日付範囲を指定する演算子
DURING
では、以下の名前付きの日付範囲を指定する演算子を使用できます。
名前付きの日付範囲を指定する演算子 | 説明 |
---|---|
today | クエリを実行した日付。 |
yesterday | クエリを実行した時を起点とした過去24時間。 |
this_week | 現在の暦週。 |
this_month | 現在の暦月。 |
this_quarter | 現在の暦四半期。 |
this_year | 現在の暦年 |
last_week | 前の暦週。 |
last_month | 前の暦月。 |
last_quarter | 前の暦四半期。 |
last_year | 前の暦年 |
bfcmYYYY | 指定された年のブラックフライデー・サイバーマンデーの範囲。たとえば、bfcm2022 は、2022年の11月25日から11月28日までの結果を返します。 |
COMPARE TO
COMPARE TO
キーワードを使用すると、SINCE
およびUNTIL
、またはDURING
の日付範囲と、COMPARE TO
の日付範囲との間でデータを比較できます。
COMPARE TO
キーワードは、以下のタイプのパラメーターと併用できます。
- 絶対日付 (
2023-01-01
など):指定され た期間における指標と、絶対日付の同期間における比較指標が含まれます。 -
名前付きの日付 (
last_week
など):指定された期間における指標と、名前付きの日付の同期間における比較指標が含まれます。-
COMPARE TO
に使用する演算子は、DURING
に使用する演算子と同じ長さの期間である必要はありません。UNTIL
の値が指定されていない場合、DURING
で指定された値と等しい時間範囲が計算されます。たとえば、DURING this_week COMPARE TO last_month
では、今週のデータを先月の第1週のデータと比較します。
-
オフセット日付 (
-3q
など):指定された期間における指標と、相対的な日付の同期間における比較指標が含まれます。複数の日付の比較 (
-1y, -2y
など):特定の日付範囲のデータを、他の複数の日付範囲のデータと比較します。この比較は、複数の期間にわたる変更を追跡する場合に便利です。COMPARE TO
を含むクエリで日付ディメンションを使用する場合は、GROUP BY
ではなくTIMESERIES
を使用する必要があります。
以下の例は、前月の純売上高と前年同月の純売上高との比較です。
相対的な日付範囲を指定する演算子
相対演算子は、指定した期間だけ過去にさかのぼり、基準となる日付範囲と同じ長さの期間を返します。名前付きの日付範囲を指定する演算子に加え、COMPARE TO
では以下の相対演算子も使用できます。
相対的な日付範囲を指定する演算子 | 説明 |
---|---|
previous_period | 基準となる日付範囲の1期間前。 |
previous_year | 基準となる日付範囲の1年前。 |
previous_quarter | 基準となる日付範囲の1四半期前。 |
previous_month | 基準となる日付範囲の1か月前。 |
previous_week | 基準となる日付範囲の1週前。 |
previous_day | 基準となる日付範囲の1日前。 |
previous_hour | 基準となる日付範囲の1時間前。 |
previous_minute | 基準となる日付範囲の1分前。 |
previous_second | 基準となる日付範囲の1秒前。 |
ORDER BY
ORDER BY
キーワード、およびそのパラメーターである昇順を表すASC
や降順を表すDESC
を使用すると、クエリから返されたデータを並べ替える方法を指定できます。
クエリに含める指標やディメンション (複数のフィールドなど) は、ORDER BY
キーワードで指定できます。
たとえば、このクエリは、過去1年間の全商品および全バリエーションの純売上高を返します。結果は、商品名でアルファベット順に並べ替えられてから、商品タイプで逆アルファベット順に並べ替えられます。
指標やディメンションを記述する順序は重要です。ORDER BY
に複数の値を指定すると、その並べ替えは記述した順序で指標またはディメンションごとに適用されます。
TIMESERIESと列の順序
クエリにTIMESERIES
およびORDER BY
が記載されているかどうかによって、列の順序が変化します。
TIMESERIES | ORDER BY | 結果 |
---|---|---|
存在する | 存在せず | 結果は、TIMESERIES ディメンションで並べ替えられます。 |
存在する | 存在する | 結果は、TIMESERIES 時間ディメンションで並べ替えられてから、ORDER BY ディメンションで並べ替えられます。 |
存在せず | 存在する | 結果は、ORDER BY ディメンションで並べ替えられます。 |
存在せず | 存在せず | 結果は、最初のSHOW 列に従って並べ替えられます。 |
LIMIT
LIMIT
キーワードを使用すると、クエリが返す最大行数を指定することができます。これは、各列のデータがどのように表示されるかを簡単に確認したい場合や、クエリが値を返すまでに時間がかかる大規模なレポートの場合に便利です。LIMIT
とORDER BY
を組み合わせることにより、上限と下限のリストを作成できます。
LIMIT
の 値を指定しない場合、クエリはデフォルトで1000行までとなります。
また、任意で{ OFFSET # }
パラメーターを使用して、行データが返される前に、特定の行数をスキップすることもできます。結果として得られるフレーズは、LIMIT 15 { OFFSET 5 }
のような形式になります。
次の例では、LIMIT
とORDER BY
を使用して、過去3か月間で、上位販売数10の商品のリストを作成します。
VISUALIZEとTYPE
VISUALIZE
キーワードを使用すると、視覚的要素でデータを可視化するShopifyQLクエリを記述できます。対応する視覚的要素としては、以下の値があります。
-
bar
-
stacked_bar
-
stacked_horizontal_bar
-
line
-
simple_bar
-
stacked_area
-
single_metric
-
donut
-
list
-
list_with_dimension_values
-
horizontal_bar
-
cohort
-
single_stacked_bar
-
funnel
-
grouped_bar
-
horizontal_grouped_bar
-
table
-
grid
TYPE
キーワードは任意です。使用する場合は、視覚的要素のタイプを1つ指定する必要があります。TYPE
がクエリに記載されていない場合、ShopifyQLでは、クエリに最適な方法でデータを可視化するよう自動的に決定します。クエリで記述どおりに可視化できない場合、ShopifyQLでは表形式のデータを返します。
VISUALIZE
は、任意のLIMIT
キーワードも受け付けます。このパラメーターは、レンダリングするデータポイントの上限数です。
たとえば、動きを示す折れ線グラフを使用すると、昨年1年間の販売傾向を月別に可視化できます。次に示すクエリでは、昨年の月別の総売上高を示す時系列グラフを返します。総売上高は単線で表示され、x軸は月を、y軸は総売上高を表します。
AS
キーワードAS
は、任意のキーワードであり、列、または集計関数の戻り値の名前を変更 (またはエイリアスを指定) することができます。
AS
は、1つのパラメーターのみを受け付けます。エイリアスの名前にスペースがある場合、そのエイリアスを二重引用符 (") で囲む必要があります。
ShopifyQLのその他の関数および演算子
ShopifyQLには、他にも以下のような演算子や関数があります。
-
算術演算子。例:
+
、/
-
関数。例:
round()
、trim()
- 非明示的な結合
-
部分的な文字列および配列の一致。例:
STARTS WITH
、CONTAINS
- コメント
算術演算子
ShopifyQLを使用すると、データにある指標を使用して算術演算を実行できます。次の算術演算子を利用できます。
数学演算子 | 説明 |
---|---|
+ | 2つの数値の加算。 |
- | 2つの数値の減算。 |
* | 2つの数値の乗算。 |
/ | 2つの数値の除算。 |
たとえば、以下に示すクエリでは、昨年の地域ごとの注文金額を算出します。指標で算術演算子を使用する際は、AS
キーワードを使用して新しい指標に新しい名前を割り当てることができます。
関数
ShopifyQL関数を使用すると、列を「集計」したり、列を結合して新しい値を作成したりすることができます。これは、Microsoft Excelのピボットテーブルに似ています。以下の関数演算子は、最新バージョンのShopifyQLで利用できます。
関数演算子 | 説明 |
---|---|
TRIM(column_name) | 文字列の先頭と末尾にある空白を削除します。 |
ROUND(column_name, decimal_places) | Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
|
For example, this query uses the rounding function on the gross_sales
column, but omits the decimal_places
argument to round the value to the integer:
Implicit joins
A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.
ShopifyQL has the following join capabilities:
- ShopifyQL allows dimension field joins when there is a single
FROM
table in the query. - Automatic left join on dimension fields.
- ShopifyQL allows multi-fact joins (when there are multiple
FROM
tables in the queries). - Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
- Metrics in multi-fact joins can use functions and math.
Shopify QL has the following join restrictions:
- Join field must have the same name in all joined schemas.
- Join field must be in
GROUP BY
. - Join field can't use functions or math.
-
FROM
is necessary for multi-fact joins to work. - In a multi-fact join, every
GROUP BY
must be in all schemas and is considered a field on which to be joined.
For example, this query uses a multi-fact join:
Partial string and array matching
You can use the following operators for partial string and array matching:
Operator | Description |
---|---|
STARTS WITH | Return all rows where a column starts with a prefix. |
ENDS WITH | Return all rows where a column ends with a suffix. |
CONTAINS | Return all rows where a column contains a part of a string, or an element in an array. |
Some examples of partial string matching using operators include the following queries:
The CONTAINS
operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS
include the following queries:
Comments
You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.
Single line comments start with --
and end at the end of the line.
Multi-line comments start with /*
and end with */
.