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.
Nesta página
Glossário de termos
Termo | Definição |
---|---|
Dimensão | Atributo 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-chave | Sintaxe da ShopifyQL que funciona como um comando para direcionar a consulta. |
Métrica | Medida quantitativa para dados. Alguns exemplos comuns: total de vendas, número de pedidos e receita bruta. |
Parâmetro | Sintaxe da ShopifyQL que identifica os elementos ou informações do banco de dados a serem incluídos na consulta. |
Operador | Uma 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
eSHOW
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:
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
TIMESERIES
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
HAVING
-
SINCE
eUNTIL
ouDURING
-
COMPARE TO
e (opcional)UNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
eTYPE
-
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.
Palavra-chave | Descrição |
---|---|
FROM | Especifica a tabela de conjunto de dados que vai fornecer os dados. |
SHOW | Seleciona as colunas a serem extraídas da tabela de conjuntos de dados. |
WHERE | Define as condições que as linhas precisam cumprir para serem selecionadas. |
GROUP BY | Agrupa os dados extraídos por uma dimensão ou dimensões de tempo. |
TIMESERIES | Distingue o agrupamento por dimensões do tempo e completa datas em uma consulta. |
WITH | Modifica o comportamento de determinadas palavras-chave do ShopifyQL. |
HAVING | Filtra os resultados de uma consulta depois de agrupados. |
SINCE | Mostra os dados desde um tempo especificado no passado. Costuma ser emparelhado com UNTIL . |
UNTIL | Mostra os dados até determinado momento no passado. Costuma ser com SINCE ou COMPARE TO . |
DURING | Mostra dados durante um momento específico no passado. |
COMPARE TO | Mostra os dados para comparação com um tempo especificado no passado. |
ORDER BY | Especifica a coluna a ser usada para classificar os dados. |
LIMIT | Limita o número de linhas de dados exibidas. |
VISUALIZE | Exibe seus dados em uma visualização de linha ou barra. Você pode especificar qual visualização deseja usar com TYPE . |
AS | Uma 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'
GROUP BY product_title, product_type, product_vendor
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:
Operador de comparação | Descriçã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:
Operador lógico | Descrição |
---|---|
AND | O filtro inclui todas as linhas em que todas as condições separadas por AND são satisfeitas. |
OR | O filtro inclui todas as linhas em que pelo menos uma das condições separadas por OR é satisfeita. |
NOT | Filtra 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 is_discounted_sale = true
GROUP BY product_title, product_type, product_vendor
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:
Operador | Descrição |
---|---|
second | Agrupar por segundo de hora. |
minute | Agrupar por minuto de hora. |
hour | Agrupa por hora do dia corrido. |
day | Agrupa por dia corrido. |
week | Agrupa por semana civil. |
month | Agrupa por mês civil. |
quarter | Agrupa por trimestre civil. |
year | Agrupa por ano civil. |
hour_of_day | Agrupamento baseado em zero por 24 horas (0, 1, ..., 23). |
day_of_week | Agrupamento baseado em zero por dia da semana (0, 1, ... , 6). |
week_of_year | Agrupa por semana do ano (1, 2,…, 52). |
month_of_year | Agrupar 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.
TIMESERIES | SHOW | GROUP BY | Resultado |
---|---|---|---|
Dado | Não presente | Não presente | O TIMESERIES é a primeira dimensão. |
Dado | Não presente | Presente | A posição das dimensões de tempo é definida pela posição em GROUP BY . |
Dado | Presente | Presente | A posição das dimensões de tempo é definida pela posição em SHOW . |
Não dado | Não presente | Presente | A posição das dimensões de tempo é definida pela posição em GROUP BY . Os dados não estão completos. |
Não dado | Presente | Presente | A posição das dimensões de tempo é definida pela posição em SHOW . Os dados não estão completos. |
Não dado | Presente | Não presente | Aciona 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 emCOMPARE 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:
Dia | Vendas brutas | Vendas líquidas | Total de vendas |
---|---|---|---|
Resumo | 6 | 15 | 24 |
01-01-2024 | 1 | 4 | 7 |
2024-01-02 | 2 | 5 | 8 |
03-01-2024 | 3 | 6 | 9 |
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:
País | ID do cliente | Total de vendas |
---|---|---|
Resumo (EUA + Canadá) | - | 1 |
Totais do grupo dos EUA | - | 0 |
EUA | 1 | 1 |
EUA | null | -1 |
Totais do grupo do Canadá | - | 1 |
Canadá | 1 | 1 |
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 sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
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:
Operador de compensação | Descrição |
---|---|
-{#}s | Número de segundos atrás a partir da data e hora em que a consulta é executada. |
-{#}min | Número de minutos atrás a partir da data e hora em que a consulta é executada. |
-{#}h | Número de horas atrás a partir da data e hora em que a consulta é executada. |
-{#}d | Número de dias atrás a partir da data e hora em que a consulta é executada. |
-{#}w | Número de semanas atrás a partir da data e hora em que a consulta é executada. |
-{#}m | Número de meses atrás a partir da data e hora em que a consulta é executada. |
-{#}q | Número de trimestres atrás, a partir da data e hora em que a consulta é executada. |
-{#}y | Número de anos atrás a partir da data e hora em que a consulta é executada. |
yyyy-MM-dd | Uma data específica. |
yyyy-MM-ddThh:mm:ss | Uma 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á.
Função de data | Descrição |
---|---|
now | A 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:
Operador de intervalo de datas nomeadas | Descrição |
---|---|
today | A data em que a consulta é executada. |
yesterday | O período anterior de 24 horas a partir do momento em que a consulta é executada. |
this_week | A semana atual do ano civil. |
this_month | O mês atual do ano civil. |
this_quarter | O trimestre atual do ano civil. |
this_year | O ano civil atual. |
last_week | A semana anterior do ano civil. |
last_month | O mês anterior do ano civil. |
last_quarter | O trimestre anterior do ano civil. |
last_year | O ano civil anterior. |
bfcmYYYY | O 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 porDURING
. Se nenhum valorUNTIL
for fornecido, ele calculará o período para ser igual ao valor especificado emDURING
. 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.
- O operador usado por
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 usarTIMESERIES
para ela, em vez deGROUP 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:
Operador do intervalo de datas relativo | Descrição |
---|---|
previous_period | Um período antes do intervalo de data base. |
previous_year | Um ano antes do intervalo de data base. |
previous_quarter | Um trimestre antes do intervalo de data base. |
previous_month | Um mês antes do intervalo de datas base. |
previous_week | Uma semana antes do intervalo de data base. |
previous_day | Um dia antes do intervalo de data base. |
previous_hour | Uma hora antes do intervalo de data base. |
previous_minute | Um minuto antes do intervalo de data base. |
previous_second | Um 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.
TIMESERIES | ORDER BY | Resultado |
---|---|---|
Presente | Não presente | Os resultados são solicitados pela dimensão TIMESERIES . |
Presente | Presente | Os resultados são solicitados pela dimensão de tempo TIMESERIES e, em seguida, pela dimensão ORDER BY . |
Não presente | Presente | Os resultados são solicitados pela dimensão ORDER BY . |
Não presente | Não presente | Os 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 uma expressão.
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"
Outros operadores do ShopifyQL
O ShopifyQL inclui os seguintes operadores adicionais:
-
Operadores matemáticos, como
+
ou/
- Junções implícitas
-
Correspondência de string parcial e matriz, como
STARTS WITH
eCONTAINS
- Comentários
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:
Operador matemático | Descriçã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, esta consulta calcula o valor do pedido para cada região no último ano. Ao usar operadores matemáticos com métricas, você pode usar a palavra-chave AS
para atribuir um novo nome à nova métrica. Vale lembrar que há limitações no uso de expressões matemáticas.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Junções implícitas
Uma junção permite que você visualize métricas de diferentes domínios juntas, lado a lado. As junções são feitas de forma implícita e inteligente no ShopifyQL.
O ShopifyQL conta com estes recursos de junção:
- O ShopifyQL permite junções de campos de dimensão quando há uma única tabela
FROM
na consulta. - Junção automática à esquerda em campos de dimensão.
- O ShopifyQL permite junções de múltiplos fatos (quando há várias tabelas
FROM
nas consultas). - Junção completa automática em junções de vários fatos, que aceitam qualquer número de tabelas ou esquemas e são agrupadas por dimensões.
- Métricas em junções multifatos podem usar matemática.
O Shopify QL tem as seguintes restrições de adesão:
- O campo de junção deve ter o mesmo nome em todos os esquemas unidos.
- O campo de junção deve estar em
GROUP BY
. - O campo de junção não pode usar matemática.
-
FROM
é necessário para que junções multifato funcionem. - Em uma junção de múltiplos fatos, cada
GROUP BY
deve estar em todos os esquemas e é considerado um campo no qual deve ser unido.
Por exemplo, esta consulta usa uma junção multifato:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Correspondência parcial de string e matriz
Você pode usar os seguintes operadores para correspondência parcial de strings e matrizes:
Operador | Descrição |
---|---|
STARTS WITH | Retorna todas as linhas onde uma coluna começa com um prefixo. |
ENDS WITH | Retorna todas as linhas em que uma coluna termina com um sufixo. |
CONTAINS | Retorna todas as linhas onde uma coluna contém uma parte de uma string ou um elemento em uma matriz. |
Alguns exemplos de correspondência parcial de strings usando operadores incluem as seguintes consultas:
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
O operador CONTAINS
pode ser usado para corresponder elementos dentro de matrizes, incluindo números inteiros, strings e decimais. Essa correspondência não diferencia maiúsculas de minúsculas. Alguns exemplos de correspondência de matriz usando CONTAINS
incluem as seguintes consultas:
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'
Comentários
É possível usar os comentários para explicar seções das instruções ShopifyQL ou evitar a execução de uma. Vale lembrar que todo o texto do comentário será ignorado durante o tempo de execução.
Comentários de linha única começam com --
e terminam no final da linha.
Comentários com várias linhas começam com /*
e terminam com */
.
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
*/