Usar o editor de consulta do ShopifyQL

Use o ShopifyQL com as novas Análises da Shopify para explorar seu próprio banco de dados comercial e recuperar os dados que oferecem um entendimento mais profundo dos seus negócios.

O ShopifyQL, ou a linguagem de consulta da Shopify, foi criado para e-commerce. As linguagens de consulta são usadas para solicitar e recuperar dados do banco de dados. Os dados da sua loja são armazenados em tabelas de banco de dados, estruturadas em colunas e linhas definidas. As colunas definem o tipo de informação que contêm, como vendas, e as linhas especificam o valor real do tipo de dados, como US$ 2.450 em vendas.

Para recuperar seus dados em um formato significativo, uma consulta precisa ser enviada ao banco de dados. Uma consulta é uma pergunta que está pedindo dados específicos como resposta, feita de palavras-chave e seus respectivos parâmetros. A combinação de várias palavras-chave com parâmetros específicos cria a consulta. Depois de criar a consulta, você pode executá-la e receber um relatório.

Glossário de termos

Definições de termos do ShopifyQL, como dimensão, palavra-chave e operador.
TermoDefinição
DimensãoAtributo que segmenta dados para classificação e apresentação mais clara. Alguns exemplos comuns: tempo, produtos e lugares. As dimensões são usadas como parâmetros na ShopifyQL.
Palavra-chaveSintaxe da ShopifyQL que funciona como um comando para direcionar a consulta.
MétricaMedida quantitativa para dados. Alguns exemplos comuns: total de vendas, número de pedidos e receita bruta.
ParâmetroSintaxe da ShopifyQL que identifica os elementos ou informações do banco de dados a serem incluídos na consulta.
OperadorUma palavra ou caractere reservado usado como parte de uma consulta. Os exemplos incluem STARTS WITH, >= ou last_week.

Sintaxe do ShopifyQL

Você precisa atender aos seguintes requisitos ao criar uma consulta de relatório válida usando o ShopifyQL:

  • Você pode colocar uma consulta inteira em uma linha ou em linhas separadas.
  • É preciso incluir pelo menos as palavras-chave FROM e SHOW com os parâmetros adequados. Todas as outras palavras-chave e parâmetros são opcionais.
  • Todas as palavras-chave de uma consulta precisam estar incluídas na seguinte ordem:
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    7. HAVING
    8. SINCE e UNTIL ou DURING
    9. COMPARE TO e (opcional) UNTIL
    10. ORDER BY
    11. LIMIT
    12. VISUALIZE e TYPE

Este é um exemplo de ShopifyQL, escrito como uma consulta usando a sintaxe correta. As palavras-chave estão em negrito, seus parâmetros correspondentes estão incluídos usando marcadores de posição genéricos, e os parâmetros opcionais estão entre colchetes:

FROM table_name1, table_name2, ...
SHOW column1 { AS alias }, column2 { AS alias }, ...
WHERE condition
GROUP BY dimension
TIMESERIES time_dimension
WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
HAVING condition
SINCE date_offset
UNTIL date_offset
DURING named_date_range
COMPARE TO [date_offset, ...]
ORDER BY column { ASC | DESC }
LIMIT number { OFFSET number }
VISUALIZE [alias1, alias2, ...]
  TYPE { visualization_type }
  LIMIT number

Palavras-chave do ShopifyQL

Uma consulta que use a ShopifyQL pode ser básica (para insights de dados gerais) ou abrangente (para insights mais detalhados). Vale lembrar que cada palavra-chave tem uma função específica que compõe a consulta.

Lista de palavras-chave do ShopifyQL e suas descrições.
Palavra-chaveDescrição
FROMEspecifica a tabela de conjunto de dados que vai fornecer os dados.
SHOWSeleciona as colunas a serem extraídas da tabela de conjuntos de dados.
WHEREDefine as condições que as linhas precisam cumprir para serem selecionadas.
GROUP BYAgrupa os dados extraídos por uma dimensão ou dimensões de tempo.
WITHModifica o comportamento de determinadas palavras-chave do ShopifyQL.
TIMESERIESDistingue o agrupamento por dimensões do tempo e completa datas em uma consulta.
HAVINGFiltra os resultados de uma consulta depois de agrupados.
SINCEMostra os dados desde um tempo especificado no passado. Costuma ser emparelhado com UNTIL.
UNTILMostra os dados até determinado momento no passado. Costuma ser com SINCE ou COMPARE TO.
DURINGMostra dados durante um momento específico no passado.
COMPARE TOMostra os dados para comparação com um tempo especificado no passado.
ORDER BYEspecifica a coluna a ser usada para classificar os dados.
LIMITLimita o número de linhas de dados exibidas.
VISUALIZEExibe seus dados em uma visualização de linha ou barra. Você pode especificar qual visualização deseja usar com TYPE.
ASUma palavra-chave opcional que renomeia uma coluna para um nome de sua escolha.

FROM e SHOW

Você só precisa de duas palavras-chave para criar a consulta mais simples no ShopifyQL: FROM e SHOW, exatamente nessa ordem. FROM, seguida por um ou mais parâmetros de nome de tabela, especifica quais tabelas você quer consultar. SHOW, seguida de qualquer número de parâmetros de nome de coluna, especifica as colunas que você quer selecionar.

SHOW pode ser usada para especificar a ordem em que as métricas e as dimensões são devolvidas no relatório.

Por exemplo, você pode devolver a soma do total de vendas escrevendo esta consulta:

FROM sales
SHOW total_sales

WHERE

A palavra-chave WHERE permite que você aplique um filtro dimensional a uma consulta inteira do ShopifyQL. O filtro pode ser modificado por operadores de comparação (maior que >), operadores lógicos (como AND ou NOT), e correspondência parcial de string e matriz (como STARTS WITH e CONTAINS).

WHERE : as condições da palavra-chave precisam atender aos seguintes requisitos:

  • Os valores precisam ser envolvidos em aspas simples (') e não em aspas duplas (").
  • As condições não podem conter aritmética.
  • As condições só podem referenciar uma dimensão, não uma métrica.

Por exemplo, se você deseja devolver o total de vendas, mas filtrado com base no país de faturamento, sua consulta será:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'

Por exemplo, no exemplo acima, você pode filtrar o resultado definido com o parâmetro WHERE mesmo quando esse parâmetro não estiver incluído na palavra-chave SHOW. Nesse caso, o total de vendas é filtrado apenas para pedidos do Canadá, mesmo que billing_country não seja incluído no conjunto de resultados.

Operadores de comparação

A palavra-chave WHERE usa operadores de comparação para filtrar dados. No exemplo acima, = foi usada para especificar que a consulta filtra um determinado valor. No entanto, há outros operadores disponíveis:

Lista de operadores de comparação do ShopifyQL, como maior ou igual a.
Operador de comparaçãoDescrição
=igual a
!=diferente de
<menor que
>maior que
<=menor ou igual a
>=maior ou igual a

Operadores lógicos

Para filtrar ainda mais os dados, use operadores lógicos na consulta. A ShopifyQL conta com algumas opções:

Lista de operadores lógicos do ShopifyQL, como AND, OR e NOT.
Operador lógicoDescrição
ANDO filtro inclui todas as linhas em que todas as condições separadas por AND são satisfeitas.
ORO filtro inclui todas as linhas em que pelo menos uma das condições separadas por OR é satisfeita.
NOTFiltra e mostra apenas as linhas em que as condições não são verdadeiras, como aquelas que não contêm o valor especificado.

É possível usar diversos filtros com a palavra-chave WHERE, basta adicionar operadores lógicos.

Com esse exemplo de consulta de conjunto de dados, para obter um agrupamento mensal das vendas líquidas para todos os pedidos com pêssegos secos em que o endereço de faturamento era no Canadá e houve um desconto aplicado, a consulta será:

FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada' AND product_title='Dried Peaches' AND discounts > 0

GROUP BY

Para segmentar uma métrica por uma dimensão, como vendas de grupo por região, use a palavra-chave GROUP BY. A palavra-chave GROUP BY pode ser emparelhada com qualquer parâmetro de dimensão.

Por exemplo, uma consulta que agrupa o total de vendas por país e região de faturamento é escrita como:

FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region

Veja outro exemplo de consulta que usa uma dimensão de tempo para mostrar o total de vendas por mês:

FROM sales
SHOW total_sales
GROUP BY month

A consulta acima não retorna meses em que não houve vendas. Se quiser uma que mostre o período completo, sem interrupções, use a palavra-chave TIMESERIES.

FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today

Dimensões de tempo

Veja as dimensões de tempo que podem ser usadas para agrupar dados:

Lista de dimensões do tempo do ShopifyQL, como segundo, minuto ou dia da semana.
OperadorDescrição
secondAgrupar por segundo de hora.
minuteAgrupar por minuto de hora.
hourAgrupa por hora do dia corrido.
dayAgrupa por dia corrido.
weekAgrupa por semana civil.
monthAgrupa por mês civil.
quarterAgrupa por trimestre civil.
yearAgrupa por ano civil.
hour_of_dayAgrupa por 24 horas (1, 2,…, 24).
day_of_weekAgrupa por dia da semana (S, T, Q,..., D).
week_of_yearAgrupa por semana do ano (1, 2,…, 52).
month_of_yearAgrupar por mês do ano (1, 2, ..., 12).

TIMESERIES

Use a palavra-chave TIMESERIES quando quiser distinguir o agrupamento por dimensões do tempo, ver métricas ao longo do tempo e completar datas em uma consulta para transformá-la em um gráfico de série temporal onde os dados não existem.

Neste exemplo, você está completando os dados do total de vendas ausentes nos últimos 15 dias:

FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d

TIMESERIES e a ordem das colunas

Dependendo de TIMESERIES ser ou não dado e presente nos valores GROUP BY ou SHOW, a ordem das colunas poderá ser alterada.

Exemplos de TIMESERIES e como a ordem das colunas é exibida com GROUP BY ou SHOW no ShopifyQL.
TIMESERIESSHOWGROUP BYResultado
DadoNão presenteNão presenteO TIMESERIES é a primeira dimensão.
DadoNão presentePresenteA posição das dimensões de tempo é definida pela posição em GROUP BY.
DadoPresentePresenteA posição das dimensões de tempo é definida pela posição em SHOW.
Não dadoNão presentePresenteA posição das dimensões de tempo é definida pela posição em GROUP BY. Os dados não estão completos.
Não dadoPresentePresenteA posição das dimensões de tempo é definida pela posição em SHOW. Os dados não estão completos.
Não dadoPresenteNão presenteAciona um erro de sintaxe porque SHOW só pode fazer referência a dimensões presentes em GROUP BY.

HAVING

Semelhante a WHERE, use a palavra-chave HAVING para filtrar os resultados de uma consulta depois de agrupada. O filtro pode ter uma condição, mas a condição pode ser modificada por operadores de comparação (como maior que >) e operadores lógicos (como AND ou NOT). Ao contrário da palavra-chave WHERE, HAVING pode referenciar aliases, funções agregadas e agrupar colunas.

HAVING exige que sua consulta inclua uma cláusula GROUP BY ou TIMESERIES porque HAVING filtra os resultados de uma consulta depois de ter sido agrupada por GROUP BY ou TIMESERIES.

Neste exemplo, você está filtrando o total de vendas de cada produto que tenha vendas totais maiores que 1.000 e menos de 5.000:

FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000

WITH

A palavra-chave WITH modifica o comportamento de determinadas outras palavras-chave do ShopifyQL. Existem três modificações disponíveis:

  • TOTALS: fornece um resumo de nível superior das métricas antes de ser dividido por qualquer dimensão.
  • GROUP_TOTALS: fornece um total para todos os subgrupos quando houver um grupo por agregação.
  • PERCENT_CHANGE: adiciona uma métrica de alteração percentual a cada coluna de comparação em COMPARE TO. Quando o modificador está presente, uma nova coluna é adicionada a cada coluna de métrica de comparação, contendo a alteração percentual.

TOTALS

O modificador TOTALS fornece um resumo de nível superior das métricas antes de ser dividido por qualquer outra dimensão. Quando você usa WITH TOTALS, a consulta retorna os totais como colunas extras nos resultados definidos com o nome métrico e "totals" como parte do nome da coluna. Cada linha contém todos os totais aplicáveis.

Por exemplo, esta consulta exibe os totais do total de vendas:

FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS

Esta consulta pode retornar um relatório semelhante a este:

Exemplo de tabela de vendas do ShopifyQL usando WITH TOTALS.
DiaVendas brutasVendas líquidasTotal de vendasVendas brutas totaisVendas líquidas totaisTotal de vendas
01-01-202414761524
2024-01-0225861524
03-01-202436961524

GROUP_TOTALS

O modificador GROUP_TOTALS fornece um total para todos os subgrupos quando há um grupo por agregação. Quando você usa WITH GROUP_TOTALS, a consulta retorna os totais como colunas extras nos resultados definidos com o nome da métrica, as dimensões sendo totalizadas e "totals" como parte do nome da coluna. Cada linha contém todos os totais aplicáveis.

Por exemplo, esta consulta exibe um total de vendas por país de faturamento:

FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS

Esta consulta pode retornar um relatório semelhante a este:

Exemplo de tabela de vendas do ShopifyQL usando GROUP_TOTALS.
PaísID do clienteTotal de vendasTotal de vendas por paísTotal de vendas
EUA1101
EUAnull-111
Canadá1111

PERCENT_CHANGE

O modificador PERCENT_CHANGE adiciona uma métrica de alteração percentual a cada coluna de comparação quando você usa COMPARE TO. Já quando você usa WITH PERCENT_CHANGE, a consulta retorna a alteração percentual de cada métrica de comparação como colunas extras nos resultados definidos com o nome métrica e "percent change" como parte do nome da coluna.

A fórmula usada para calcular a alteração percentual é: (base_column - comparison_column) * 100 / abs(comparison_column)

Por exemplo, essa consulta usa SINCE e COMPARE TO para comparar as vendas líquidas por dia do mês anterior com o mesmo mês do ano anterior, com uma coluna de alteração percentual:

FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

As colunas do relatório resultante incluem dia, vendas líquidas, dia de comparação, comparação de vendas líquidas e porcentagem de alteração das vendas líquidas.

SINCE e UNTIL

Se você quiser filtrar sua consulta por uma data ou algum período, poderá usar as palavras-chave SINCE e UNTIL e seus parâmetros associados. Essas palavras-chave são exclusivas porque filtram apenas períodos. Se você usar SINCE e não definir um valor de UNTIL, o final do intervalo de tempo será definido como today.

Por exemplo, temos aqui uma consulta para encontrar as vendas líquidas nos últimos 12 meses no Canadá, terminando ontem:

FROM orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
SINCE -12m
UNTIL yesterday

Operadores de compensação

É possível filtrar por datas específicas ou ajustes de data e hora. Os operadores de ajuste do ShopifyQL são:

Lista de operadores de compensação do ShopifyQL, como compensação por segundos, minutos ou uma data específica.
Operador de compensaçãoDescrição
-{#}sNúmero de segundos atrás a partir da data e hora em que a consulta é executada.
-{#}minNúmero de minutos atrás a partir da data e hora em que a consulta é executada.
-{#}hNúmero de horas atrás a partir da data e hora em que a consulta é executada.
-{#}dNúmero de dias atrás a partir da data e hora em que a consulta é executada.
-{#}wNúmero de semanas atrás a partir da data e hora em que a consulta é executada.
-{#}mNúmero de meses atrás a partir da data e hora em que a consulta é executada.
-{#}qNúmero de trimestres atrás, a partir da data e hora em que a consulta é executada.
-{#}yNúmero de anos atrás a partir da data e hora em que a consulta é executada.
yyyy-MM-ddUma data específica.
yyyy-MM-ddThh:mm:ssUma data e hora específicas.

Funções de data

Use as seguintes funções combinadas com qualquer operador de intervalo de datas (com exceção de datas específicas) nas instruções SINCE e UNTIL. As funções "startOf..." são truncadas para o início da unidade de tempo associada (minuto, hora, dia, semana, mês, trimestre e ano) quando usadas com SINCE, e as funções "endOf..." são truncadas para o final da unidade de tempo associada quando usadas com UNTIL.

As unidades de função de data e as unidades de operador devem corresponder para retornar um resultado válido. Por exemplo, startOfMonth(-1m) está correto, mas startOfMonth(-1d) não está.

Lista de funções de data do ShopifyQL, como final do dia ou início do trimestre.
Função de dataDescrição
nowA data e a hora em que a consulta é executada.
startOfMinute(-{#}min)Trunca o operador do intervalo de datas para o início do minuto de destino.
endOfMinute(-{#}min)Trunca o operador de intervalo de data para o fim do minuto desejado.
startOfHour(-{#}h)Trunca o operador de intervalo de data para o começo da hora desejada.
endOfHour(-{#}h)Trunca o operador do intervalo de datas para o final da hora de destino.
startOfDay(-{#}d)Trunca o operador de intervalo de data para o começo do dia desejado.
endOfDay(-{#}d)Trunca o operador de intervalo de data para o fim do dia desejado.
startOfWeek(-{#}w)Trunca o operador de intervalo de data para o começo da semana desejada.
endOfWeek(-{#}w)Trunca o operador de intervalo de data para o fim da semana desejada.
startOfMonth(-{#}m)Trunca o operador de intervalo de data para o começo do mês desejado.
endOfMonth(-{#}m)Trunca o operador de intervalo de data para o fim do mês desejado.
startOfQuarter(-{#}q)Trunca o operador de intervalo de data para o começo do trimestre desejado.
endOfQuarter(-{#}q)Trunca o operador de intervalo de data para o fim do trimestre desejado.
startOfYear(-{#}y)Trunca o operador de intervalo de data para o começo do ano desejado.
endOfYear(-{#}y)Trunca o operador de intervalo de data para o fim do ano desejado.

Por exemplo, se hoje for 8 de novembro de 2022, você poderá usar a seguinte consulta para retornar as vendas brutas de 1º de janeiro de 2020 a 31 de outubro de 2022:

FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)

DURING

A palavra-chave DURING simplifica a filtragem em intervalos de datas e substitui o uso de SINCE e UNTIL. É possível usar a palavra-chave DURING para filtrar os resultados da consulta por um período de tempo conhecido, como um ano civil ou um mês específico, ou por eventos com datas que mudam todo ano, como a Black Friday Cyber Monday. Por exemplo:

FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021

Operadores de intervalo de datas denominados

DURING aceita qualquer operador de intervalo de datas nomeadas a seguir:

Lista de operadores de intervalo de datas denominados ShopifyQL, como hoje, ontem ou esta semana.
Operador de intervalo de datas nomeadasDescrição
todayA data em que a consulta é executada.
yesterdayO período anterior de 24 horas a partir do momento em que a consulta é executada.
this_weekA semana atual do ano civil.
this_monthO mês atual do ano civil.
this_quarterO trimestre atual do ano civil.
this_yearO ano civil atual.
last_weekA semana anterior do ano civil.
last_monthO mês anterior do ano civil.
last_quarterO trimestre anterior do ano civil.
last_yearO ano civil anterior.
bfcmYYYYO intervalo da Black Friday Cyber Monday para o ano especificado. Por exemplo, bfcm2022 retorna os resultados de 25 a 28 de novembro de 2022.

COMPARE TO

A palavra-chave COMPARE TO permite que você compare dados entre o intervalo de datas em SINCE e UNTIL ou DURING e aquele em COMPARE TO.

Use a palavra-chave COMPARE TO com os seguintes tipos de parâmetros:

  • Datas absolutas, como 2023-01-01: inclui as métricas do período especificado e as métricas de comparação do mesmo período na data absoluta.
  • Datas nomeadas, como last_week: incluem as métricas do período específico e as de comparação do mesmo período na data nomeada.

    • O operador usado por COMPARE TO não precisa ter a mesma duração que o usado por DURING. Se nenhum valor UNTIL for fornecido, ele calculará o período para ser igual ao valor especificado em DURING. Por exemplo, DURING this_week COMPARE TO last_month compara os dados desta semana com um período de uma semana que começa no início do mês passado.
  • Datas de ajuste, como -3q: incluem as métricas do período especificado e as de comparação do mesmo período na data relativa.

  • Comparações de várias datas, como -1y, -2y: compara os dados de um período específico com vários outros intervalos de datas. Isso pode ser útil quando você deseja acompanhar alterações em vários períodos.

  • Se você usa uma dimensão de data em uma consulta com COMPARE TO, precisa usar TIMESERIES para ela, em vez de GROUP BY.

O exemplo a seguir compara as vendas líquidas do mês anterior com o mesmo mês do ano anterior:

FROM sales
SHOW net_sales, product_title
GROUP BY product_title
TIMESERIES day
SINCE -1m
UNTIL -0m
COMPARE TO previous_year

Operadores de intervalo de data relativa

Os operadores relativos retornam o mesmo período que o intervalo de datas base, retrocedido pelo período especificado. Além dos operadores de intervalo de datas denominados, COMPARE TO aceita os seguintes operadores relativos:

Lista de operadores de período relativos do ShopifyQL, como período anterior ou ano anterior.
Operador do intervalo de datas relativoDescrição
previous_periodUm período antes do intervalo de data base.
previous_yearUm ano antes do intervalo de data base.
previous_quarterUm trimestre antes do intervalo de data base.
previous_monthUm mês antes do intervalo de datas base.
previous_weekUma semana antes do intervalo de data base.
previous_dayUm dia antes do intervalo de data base.
previous_hourUma hora antes do intervalo de data base.
previous_minuteUm minuto antes do intervalo de data base.
previous_secondUm segundo antes do intervalo de data base.

ORDER BY

É possível especificar como você quer classificar os dados retornados pela consulta com a palavra-chave ORDER BY, e os parâmetros associados: ASC, para ordem crescente, e DESC, para ordem decrescente.

Você pode especificar qualquer métrica ou dimensão a ser incluída na consulta com a palavra-chave ORDER BY, até mesmo vários campos.

Por exemplo, essa consulta retorna as vendas líquidas de todos os produtos e variantes no último ano. Os resultados são organizados em ordem alfabética por título do produto e, em seguida, em ordem alfabética inversa por tipo de produto:

FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC

A ordem na qual você escreve suas métricas ou dimensões é importante. Se você especificar vários valores para ORDER BY, a classificação será aplicada a cada métrica ou dimensão em um período.

TIMESERIES e a ordem das colunas

Dependendo se a consulta incluir ou não TIMESERIES e ORDER BY, a ordem das colunas poderá ser alterada.

Exemplo de TIMESERIES e a ordem das colunas quando ORDER BY está presente usando o ShopifyQL.
TIMESERIESORDER BYResultado
PresenteNão presenteOs resultados são solicitados pela dimensão TIMESERIES.
PresentePresenteOs resultados são solicitados pela dimensão de tempo TIMESERIES e, em seguida, pela dimensão ORDER BY.
Não presentePresenteOs resultados são solicitados pela dimensão ORDER BY.
Não presenteNão presenteOs resultados são solicitados pela primeira coluna SHOW.

LIMIT

A palavra-chave LIMIT permite que você especifique o número máximo de linhas que a consulta retorna. Isso é útil quando você só deseja entender como os dados de cada coluna são exibidos ou para relatórios maiores nos quais as consultas podem levar mais tempo para retornar valores. Combine LIMIT com ORDER BY para criar listas superior e inferior.

Se você não especificar um valor LIMIT, a consulta padrão será de 1.000 linhas.

Você também pode usar um parâmetro { OFFSET # } opcional para pular um determinado número de linhas antes de começar a retornar os dados da linha. A frase resultante seria formatada semelhante a: LIMIT 15 { OFFSET 5 }.

Este exemplo usa LIMIT e ORDER BY para criar uma lista dos 10 produtos mais vendidos nos últimos 3 meses:

FROM sales
SHOW gross_sales as total_gross_sales
GROUP BY product_title
SINCE -3m
UNTIL today
ORDER BY total_gross_sales DESC
LIMIT 10

VISUALIZE e TYPE

A palavra-chave VISUALIZE permite que você escreva uma consulta do ShopifyQL que exibe dados em uma visualização gráfica. Os valores aceitos incluem os seguintes:

  • 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

A palavra-chave TYPE é opcional e precisa ser acompanhada por um único tipo de visualização. Se TYPE não estiver incluído em sua consulta, o ShopifyQL decidirá automaticamente a melhor opção para sua consulta. Se a consulta não puder ser visualizada como escrita, o ShopifyQL retornará os dados tabulares.

VISUALIZE também aceita uma palavra-chave LIMIT opcional em que o parâmetro é o número limitado de pontos de dados a processar.

Por exemplo, é possível visualizar a linha de tendência de vendas ao longo do ano passado por mês. Esta consulta retorna um gráfico de série temporal com essas informações, em que uma linha simples representa as vendas brutas, o eixo X indica o mês e o eixo Y indica as vendas brutas:

FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line

AS

A palavra-chave AS é uma palavra-chave opcional que permite renomear (ou fornecer um alias para) uma coluna ou o valor de retorno de uma função agregada.

AS aceita apenas um único parâmetro. Se o alias tiver um espaço no nome, você deverá cercar o alias com aspas duplas (").

FROM sales
SHOW total_sales AS "My Total Sales"

Outras funções e operadores do ShopifyQL

O ShopifyQL inclui os seguintes operadores e funções adicionais:

Operadores matemáticos

Com a ShopifyQL, é possível fazer operações aritméticas com as métricas dos dados. Estes são os operadores matemáticos disponíveis:

Lista de operadores matemáticos do ShopifyQL, incluindo mais e menos.
Operador matemáticoDescrição
+Soma de dois números.
-Subtração de dois números.
*Multiplicação de dois números.
/Divisão de dois números.

Por exemplo, a consulta calcula o valor do pedido para cada região no último ano. Ao usar operadores matemáticos com métricas, você pode incluir a palavra-chave AS para atribuir um novo nome à nova métrica.

FROM sales
SHOW (net_sales + returns) AS order_value, orders, (net_sales + returns)/orders AS sales_per_order
GROUP BY billing_region
SINCE -1y
UNTIL today

Funções

As funções do ShopifyQL permitem agregar colunas ou combiná-las para criar um novo valor, semelhante a tabelas dinâmicas no Microsoft Excel. Os seguintes operadores de função estão disponíveis na versão atual do ShopifyQL:

Lista de funções do ShopifyQL aceitas, como corte e arredondamento.
Operador de funçãoDescrição
TRIM(column_name)Remove espaços em branco à esquerda e à direita de uma string.
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:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

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:

FROM sales
SHOW average_order_value, round(gross_sales)
GROUP BY billing_region
SINCE 2021-01-01
UNTIL 2021-12-31

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:

FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day

Partial string and array matching

You can use the following operators for partial string and array matching:

List of Partial string and array matching operators in ShopifyQL.
OperatorDescription
STARTS WITHReturn all rows where a column starts with a prefix.
ENDS WITHReturn all rows where a column ends with a suffix.
CONTAINSReturn 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:

FROM sales
SHOW product_title
WHERE product_title STARTS WITH 'Summer'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title ENDS WITH 'kit'
GROUP BY product_title
FROM sales
SHOW product_title
WHERE product_title CONTAINS 'Beef'
GROUP BY product_title

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:

FROM sales
SHOW orders
WHERE products_bought_together_ids CONTAINS 101
FROM customers
SHOW total_number_of_orders
WHERE customer_cities CONTAINS 'seattle'
FROM sales
SHOW orders
WHERE variants_bought_together_variant_prices CONTAINS 10.2

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 */.

FROM sales
SHOW average_order_value, gross_sales
-- the line below has been commented out and won't run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and won't run
SINCE 2021-01-01
UNTIL 2021-12-31
*/
Não encontrou as respostas que está procurando? Estamos sempre à disposição para ajudar você.