Usar el editor de consultas ShopifyQL
Puedes usar ShopifyQL con la nueva sección Informes y estadísticas de Shopify para explorar la base de datos de tu negocio y recuperar los datos que te den una idea más detallada de tu negocio.
ShopifyQL, o el lenguaje de consulta de Shopify, es el lenguaje de consulta de Shopify creado para el comercio. Los lenguajes de consulta se usan para solicitar y recuperar datos de las bases de datos. Los datos de tu tienda se almacenan en tablas de bases de datos con una estructura de columnas y filas definidas. Las columnas determinan el tipo de información que contienen, como las ventas, y las filas especifican el valor real del tipo de datos, como USD 2.450 en ventas.
Para recuperar los datos en un formato comprensible, se debe enviar una consulta a la base de datos. Las consultas son preguntas que solicitan datos específicos como respuesta, formadas por palabras clave y sus parámetros correspondientes. La combinación de varias palabras clave con parámetros específicos crea la consulta. Después de crear la consulta, puedes ejecutarla y recibir un informe.
En esta página
Glosario de términos
Término | Definición |
---|---|
Dimensión | Un atributo que segmenta los datos para que puedan ordenarse y presentarse más claramente. Algunos ejemplos comunes de dimensiones son la hora, los productos y los lugares. Las dimensiones se usan como parámetros en ShopifyQL. |
Palabra clave | Sintaxis de ShopifyQL que actúa como un comando para dirigir tu consulta. |
Métrica | Una medición cuantitativa de datos. Algunos ejemplos comunes de métricas son las ventas totales, la cantidad de pedidos y las ganancias brutas. |
Parámetro | Sintaxis de ShopifyQL que identifica los elementos o detalles de la base de datos que se deben incluir en tu consulta. |
Operador | Palabra o caracter reservado que se utiliza como parte de una consulta. Por ejemplo, STARTS WITH , >= o last_week . |
Sintaxis de ShopifyQL
Debes cumplir con los siguientes requisitos al crear una consulta de informe válida con ShopifyQL:
- Puedes colocar una consulta entera en una línea o en líneas separadas.
- Debes incluir al menos las palabras clave
FROM
ySHOW
, con sus parámetros adecuados. Todas las demás palabras clave y parámetros son opcionales. - Todas las palabras clave en una consulta deben incluirse en el siguiente orden:
-
FROM
-
SHOW
-
WHERE
-
GROUP BY
-
TIMESERIES
-
WITH
TOTALS
,GROUP_TOTALS
,PERCENT_CHANGE
-
HAVING
-
SINCE
yUNTIL
oDURING
-
COMPARE TO
y opcionalUNTIL
-
ORDER BY
-
LIMIT
-
VISUALIZE
yTYPE
-
Este es un ejemplo de ShopifyQL, escrito como una consulta con la sintaxis correcta. Las palabras clave están en negrita, sus parámetros correspondientes se incluyen con marcadores de posición genéricos y los parámetros opcionales están entre paréntesis:
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
Palabras clave de ShopifyQL
Las consultas de ShopifyQL pueden requerir desde información útil sobre datos de alto nivel hasta información completa y detallada. Cada palabra clave tiene una función específica que sirve para crear tu consulta.
Palabra clave | Descripción |
---|---|
FROM | Especifica de qué tabla de datos deseas seleccionar la información. |
SHOW | Selecciona las columnas que deseas extraer de la tabla de datos. |
WHERE | Define la condición o las condiciones que deben cumplir las filas para que se seleccionen. |
GROUP BY | Agrupa los datos extraídos por una dimensión o por dimensiones de tiempo. |
TIMESERIES | Distingue la agrupación por dimensiones de tiempo y completa datos de fechas en una consulta. |
WITH | Modifica el comportamiento de ciertas palabras clave de ShopifyQL. |
HAVING | Filtra los resultados de una consulta después de que se han agrupado. |
SINCE | Muestra datos desde una hora especificada en el pasado. A menudo se empareja con UNTIL . |
UNTIL | Muestra datos hasta un momento concreto del pasado. A menudo se empareja con SINCE o COMPARE TO . |
DURING | Muestra los datos durante un tiempo especificado en el pasado. |
COMPARE TO | Muestra los datos para la comparación con un tiempo especificado en el pasado. |
ORDER BY | Especifica en función de qué columna ordenar los datos. |
LIMIT | Limita el número de filas de datos que se muestran. |
VISUALIZE | Muestra los datos en una visualización en forma de líneas o de barras. Puedes especificar qué visualización prefieres con TYPE . |
AS | Palabra clave opcional que cambia el nombre de una columna por otro de tu elección. |
FROM y SHOW
Para crear la consulta más sencilla con ShopifyQL, solo se requieren dos palabras clave: FROM
y SHOW
, escritas en ese orden. FROM
, seguido de uno o más parámetros de nombre de tabla, especifica qué tablas deseas consultar. SHOW
, seguido de cualquier número de parámetros de nombre de columna especifica las columnas que deseas seleccionar.
SHOW
se puede usar para especificar el orden en que se muestran las métricas y dimensiones en el informe.
Por ejemplo, puedes escribir esta consulta para obtener la suma de las ventas totales:
FROM sales
SHOW total_sales
WHERE
La palabra clave WHERE
te permite aplicar un filtro dimensional a toda una consulta de ShopifyQL. El filtro puede modificarse por operadores relacionales (como mayor que >
), operadores lógicos (como AND
o NOT
) y la coincidencia parcial de cadenas y matrices (como STARTS WITH
y CONTAINS
).
WHERE
es un tipo de condiciones que debe cumplir con los siguientes requisitos:
- Los valores deben estar entre comillas simples ('), no comillas dobles (").
- Las condiciones no pueden contener aritmética.
- Las condiciones solo pueden hacer referencia a una dimensión, no a una métrica.
Por ejemplo, si deseas obtener las ventas totales pero filtradas en función del país de facturación, tu consulta debe ser así:
FROM sales
SHOW total_sales, product_title, product_type, product_vendor
WHERE billing_country='Canada'
GROUP BY product_title, product_type, product_vendor
Como en el ejemplo anterior, puedes filtrar el conjunto de resultados con el parámetro WHERE
, incluso cuando ese parámetro no está incluido en la palabra clave SHOW
. En este caso, las ventas totales se filtrarán solo para los pedidos de Canadá, aunque billing_country
no esté incluido en el conjunto de resultados.
Operadores relacionales
La palabra clave WHERE
usa operadores relacionales para filtrar los datos. En el ejemplo anterior, se usó =
para especificar que la consulta se filtra en un valor determinado. Sin embargo, hay otros operadores disponibles:
Operador relacional | Descripción |
---|---|
= | igual a |
!= | no igual a |
< | menor que |
> | mayor que |
<= | menor que o igual a |
>= | mayor que o igual a |
Operadores lógicos
Para filtrar aún más la información, puedes agregar operadores lógicos a tu consulta. Los operadores lógicos de ShopifyQL son:
Operador lógico | Descripción |
---|---|
AND | Filtra para incluir todas las filas donde se cumplan las condiciones separadas por AND . |
OR | Filtra para incluir todas las filas donde se cumpla alguna de las condiciones separadas por OR . |
NOT | Filtra para incluir solo las filas donde no se cumplan las condiciones, como las filas que no contienen el valor especificado. |
Puedes usar varios filtros con la palabra clave WHERE
agregando operadores lógicos.
Siguiendo con el ejemplo de la consulta sobre el conjunto de datos, para obtener una agrupación por mes de las ventas netas para todos los pedidos que contengan melocotones secos en los que la dirección de facturación se encuentre en Canadá y se haya aplicado un descuento, la consulta es así:
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 una métrica por dimensión, como ventas agrupadas por región, usa la palabra clave GROUP BY
. La palabra clave GROUP BY
se puede emparejar con cualquier parámetro de dimensión.
Por ejemplo, una consulta que agrupe las ventas totales por país y región de facturación se escribe del siguiente modo:
FROM sales
SHOW total_sales
GROUP BY billing_country, billing_region
A continuación incluimos otro ejemplo de consulta que usa una dimensión de tiempo para mostrar las ventas totales por mes:
FROM sales
SHOW total_sales
GROUP BY month
La consulta anterior no mostrará los meses en los que no hayas tenido ninguna venta. De modo que, si deseas formular una consulta que devuelva un período completo e ininterrumpido, usa la palabra clave TIMESERIES
.
FROM sales
SHOW total_sales
TIMESERIES month
SINCE last_year
UNTIL today
Dimensiones de tiempo
Estas son las dimensiones de tiempo que puedes usar para agrupar tus datos:
Operador | Descripción |
---|---|
second | Agrupar por segundos de hora. |
minute | Agrupar por minutos de hora. |
hour | Agrupar por hora de día calendario. |
day | Agrupar por día calendario. |
week | Agrupar por semana calendario. |
month | Agrupar por mes calendario. |
quarter | Agrupar por trimestre calendario. |
year | Agrupar por año natural. |
hour_of_day | Agrupar desde cero por 24 horas (0, 1, ..., 23). |
day_of_week | Agrupar desde cero por día de la semana (0, 1, ..., 6). |
week_of_year | Agrupar por semana del año (1, 2, …, 52). |
month_of_year | Agrupar por mes del año (1, 2, …, 12). |
TIMESERIES
Puedes usar la palabra clave TIMESERIES
cuando desees distinguir la agrupación por dimensiones de tiempo, ver métricas a lo largo del tiempo y completar datos de fechas en una consulta para convertirla en un gráfico de series temporales donde los datos no existen.
En este ejemplo, se completan los datos de ventas totales que faltan en los últimos 15 días:
FROM sales
SHOW total_sales
GROUP BY product_title, billing_country
TIMESERIES day
SINCE -15d
TIMESERIES y el orden de las columnas
Dependiendo de si la palabra clave TIMESERIES
se indica o está presente en los valores de GROUP BY
o SHOW
, el orden de las columnas puede cambiar.
TIMESERIES | SHOW | GROUP BY | Resultado |
---|---|---|---|
Indicada | No presente | No presente |
TIMESERIES es la primera dimensión. |
Indicada | No presente | Presentar | La posición de las dimensiones de tiempo se define por su posición en GROUP BY . |
Indicada | Presentar | Presentar | La posición de las dimensiones de tiempo se define por su posición en SHOW . |
No indicada | No presente | Presentar | La posición de las dimensiones de tiempo se define por su posición en GROUP BY . Los datos no se completan. |
No indicada | Presentar | Presentar | La posición de las dimensiones de tiempo se define por su posición en SHOW . Los datos no se completan. |
No indicada | Presentar | No presente | Activa un error de sintaxis porque SHOW solo puede hacer referencia a las dimensiones presentes en GROUP BY . |
HAVING
De forma similar a WHERE
, puedes usar la palabra clave HAVING
para filtrar los resultados de una consulta después de que se hayan agrupado. El filtro puede tener una condición, pero la condición puede modificarse tanto por los operadores relacionales (como mayor que >
) como por los operadores lógicos (como AND
o NOT
). A diferencia de la palabra clave WHERE
, HAVING
puede hacer referencia a alias, funciones agregadas y columnas de agrupación.
HAVING
requiere que tu consulta incluya una cláusula de GROUP BY
o TIMESERIES
porque HAVING
filtra los resultados de una consulta después de que se hayan agrupado por GROUP BY
o TIMESERIES
.
En este ejemplo, se filtran los ingresos totales para cada producto que tenga ventas totales mayores que 1.000 y menores que 5.000:
FROM sales
SHOW total_sales
GROUP BY product_title
HAVING total_sales > 1000 AND total_sales < 5000
WITH
La palabra clave WITH
modifica el comportamiento de algunas otras palabras clave de ShopifyQL. Hay tres modificaciones disponibles:
-
TOTALS
: proporciona un resumen general de las métricas antes de que se desglosen por alguna dimensión. -
GROUP_TOTALS
: Proporciona un total para todas las subagrupaciones cuando existe una agrupación por agregado. -
PERCENT_CHANGE
: agrega una métrica de cambio porcentual a cada columna de comparación enCOMPARE TO
. Cuando este modificador está presente, se agrega una nueva columna para cada columna de métrica de comparación con el cambio porcentual correspondiente.
TOTALS
El modificador TOTALS
proporciona un resumen general de las métricas antes de desglosarlas por cualquier otra dimensión. Cuando usas WITH TOTALS
, la consulta devuelve los totales como columnas adicionales en los resultados establecidos con el nombre de la métrica y los "totales" como parte del nombre de la columna. Cada fila contiene todos los totales aplicables.
Por ejemplo, esta consulta muestra los totales de las ventas totales:
FROM sales
SHOW gross_sales, net_sales, total_sales
TIMESERIES day
WITH TOTALS
Esta consulta podría devolver un informe similar a este:
Día | Ventas brutas | Ventas netas | Total de ventas |
---|---|---|---|
Resumen | 6 | 15 | 24 |
01/01/2024 | 1 | 4 | 7 |
02/01/2024 | 2 | 5 | 8 |
03/01/2024 | 3 | 6 | 9 |
GROUP_TOTALS
El modificador GROUP_TOTALS
proporciona un total para todas las subagrupaciones cuando hay una agrupación por agregación. Cuando usas WITH GROUP_TOTALS
, la consulta devuelve los totales como columnas adicionales en los resultados establecidos con el nombre de la métrica y los "totales" como parte del nombre de la columna. Cada fila contiene todos los totales aplicables.
Por ejemplo, esta consulta muestra un total de ventas totales por país de facturación:
FROM sales
SHOW customer_id, total_sales
GROUP BY customer_id, billing_country
WITH TOTALS, GROUP_TOTALS
Esta consulta podría devolver un informe similar a este:
País | Identificación del cliente | Total de ventas |
---|---|---|
Resumen (EE. UU. y Canadá) | - | 1 |
Totales del grupo de EE. UU. | - | 0 |
EE.UU. | 1 | 1 |
EE.UU. | nulo | -1 |
Totales del grupo de Canadá | - | 1 |
Canadá | 1 | 1 |
PERCENT_CHANGE
El modificador PERCENT_CHANGE
agrega una métrica de cambio porcentual a cada columna de comparación cuando usas COMPARE TO
. Cuando usas WITH PERCENT_CHANGE
, la consulta devuelve el cambio porcentual para cada métrica de comparación como columnas adicionales en los resultados establecidos con el nombre de la métrica y el "cambio porcentual" como parte del nombre de la columna.
La fórmula que se utiliza para calcular el cambio porcentual es (base_column - comparison_column) * 100 / abs(comparison_column)
Por ejemplo, esta consulta usa SINCE
y COMPARE TO
para comparar las ventas netas por día del mes anterior a las del mismo mes del año anterior, con una columna de cambio porcentual:
FROM sales
SHOW net_sales
TIMESERIES day
WITH PERCENT_CHANGE
SINCE -1m
UNTIL -0m
COMPARE TO previous_year
Las columnas en el informe resultante incluyen el día, las ventas netas, el día de comparación, las ventas netas de comparación y el cambio porcentual de las ventas netas.
SINCE y UNTIL
Si deseas filtrar tu consulta por una fecha o algún período de tiempo, puedes usar las palabras clave SINCE
y UNTIL
y sus parámetros asociados. Estas palabras clave son únicas porque solo filtran períodos. Si usas SINCE
y no defines un valor de UNTIL
, el final de tu intervalo de tiempo se establecerá por defecto en today
.
Por ejemplo, veamos una consulta para encontrar las ventas netas durante los últimos 12 meses en Canadá, hasta ayer:
FROM sales
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month
SINCE -12m
UNTIL yesterday
Operadores de intervalos de tiempo
Puedes filtrar por fechas específicas o por intervalos de fecha y hora. Los operadores de intervalos de tiempo de ShopifyQL son los siguientes:
Operador de intervalos de tiempo | Descripción |
---|---|
-{#}s | Número de segundos transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}min | Número de minutos transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}h | Número de horas transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}d | Número de días transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}w | Número de semanas transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}m | Número de meses transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}q | Número de trimestres transcurridos desde la fecha y hora en que se ejecuta la consulta. |
-{#}y | Número de años transcurridos desde la fecha y hora en que se ejecuta la consulta. |
yyyy-MM-dd | Una fecha específica. |
yyyy-MM-ddThh:mm:ss | Una fecha y hora específicas. |
Funciones de fecha
Puedes usar las siguientes funciones combinadas con cualquier operador de intervalo de fechas (con excepción de fechas específicas) en las instrucciones SINCE
y UNTIL
. Las funciones de "startOf...
" se reducen al inicio de la unidad de tiempo asociada (minuto, hora, día, semana, mes, trimestre y año) cuando se usan con SINCE
, y las funciones de "endOf...
" se reducen al final de la unidad de tiempo asociada cuando se usan con UNTIL
.
Las unidades de funciones de fecha y las unidades de operadores deben coincidir para devolver un resultado válido. Por ejemplo, startOfMonth(-1m)
es correcta, pero startOfMonth(-1d)
no.
Función de fecha | Descripción |
---|---|
now | La fecha y hora en que se ejecuta la consulta. |
startOfMinute(-{#}min) | Reduce el operador de intervalo de fechas hasta el principio del minuto objetivo. |
endOfMinute(-{#}min) | Reduce el operador de intervalo de fechas hasta el final del minuto objetivo. |
startOfHour(-{#}h) | Reduce el operador de intervalo de fechas hasta el principio de la hora objetivo. |
endOfHour(-{#}h) | Reduce el operador de intervalo de fechas hasta el final de la hora objetivo. |
startOfDay(-{#}d) | Reduce el operador de intervalo de fechas hasta el principio del día objetivo. |
endOfDay(-{#}d) | Reduce el operador de intervalo de fechas hasta el final del día objetivo. | startOfWeek(-{#}w) | Reduce el operador de intervalo de fechas hasta el principio de la semana objetivo. |
endOfWeek(-{#}w) | Reduce el operador de intervalo de fechas hasta el final de la semana objetivo. |
startOfMonth(-{#}m) | Reduce el operador de intervalo de fechas hasta el principio del mes objetivo. |
endOfMonth(-{#}m) | Reduce el operador de intervalo de fechas hasta el final del mes objetivo. |
startOfQuarter(-{#}q) | Reduce el operador de intervalo de fechas hasta el principio del trimestre objetivo. |
endOfQuarter(-{#}q) | Reduce el operador de intervalo de fechas hasta el final del trimestre objetivo. |
startOfYear(-{#}y) | Reduce el operador de intervalo de fechas hasta el principio del año objetivo. |
endOfYear(-{#}y) | Reduce el operador de intervalo de fechas hasta el final del año objetivo. |
Por ejemplo, si hoy es el 8 de noviembre de 2022, puedes usar la siguiente consulta para devolver las ventas brutas desde el 1 de enero de 2020 hasta el 31 de octubre de 2022:
FROM sales
SHOW gross_sales
SINCE startOfYear(-2y)
UNTIL endOfMonth(-1m)
DURING
La palabra clave DURING
simplifica el filtrado de fechas para los intervalos de fechas y sustituye el uso de SINCE
y UNTIL
. Puedes usar la palabra clave DURING
para filtrar los resultados de la consulta por un período conocido, como un año natural o un mes específico, o para los intervalos de fechas que tienen fechas diferentes cada año, como Black Friday y Cyber Monday. Por ejemplo:
FROM sales
SHOW total_sales
GROUP BY day
DURING bfcm2021
Operadores de intervalo de fechas con nombre
DURING
acepta cualquiera de los siguientes operadores de intervalo de fechas:
Operador de intervalo de fechas con nombre | Descripción |
---|---|
today | La fecha en que se ejecuta la consulta. |
yesterday | El período previo de 24 horas que transcurre desde el momento en que se ejecuta la consulta. |
this_week | La semana calendario actual. |
this_month | El mes calendario actual. |
this_quarter | El trimestre calendario actual. |
this_year | El año natural previo o actual. |
last_week | La semana calendario anterior. |
last_month | El mes calendario anterior. |
last_quarter | El trimestre calendario anterior. |
last_year | Los años calendario previos. |
bfcmYYYY | El rango de Black Friday y Cyber Monday para el año específico. Por ejemplo, bfcm2022 devuelve resultados del 25 al 28 de noviembre de 2022. |
COMPARE TO
La palabra clave COMPARE TO
te permite comparar datos en el intervalo de fechas en SINCE
y UNTIL
o DURING
, y en el de COMPARE TO
.
Puedes usar la palabra clave COMPARE TO
con los siguientes tipos de parámetros:
- Fechas absolutas, como
2023-01-01
: incluye las métricas para el período especificado y las métricas de comparación del mismo período en la fecha absoluta. -
Fechas con nombre, como
last_week
: incluye las métricas para el período especificado y las métricas de comparación para el mismo período en la fecha con nombre.- El operador que usa
COMPARE TO
no debe tener la misma duración que la que usóDURING
. Si no se proporciona el valorUNTIL
, calcula el intervalo de tiempo para que sea igual al valor especificado enDURING
. Por ejemplo,DURING this_week COMPARE TO last_month
compara los datos de esta semana con un período de una semana que comienza al principio del mes pasado.
- El operador que usa
Desfase de fecha, como
-3q
: incluye las métricas para el período especificado y las métricas de comparación para el mismo período en la fecha relativa.Comparaciones de fechas múltiples, como
-1y, -2y
: compara tus datos de un intervalo de fechas específico con otros múltiples intervalos de fechas. Esto puede ser útil cuando deseas hacer seguimiento de los cambios durante varios períodos.Si usas una dimensión de fecha en una consulta con
COMPARE TO
, debes usarTIMESERIES
en lugar deGROUP BY
.
En el siguiente ejemplo, se comparan las ventas netas del mes anterior con las del mismo mes del año 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 fechas relativas
Los operadores relativos devuelven la misma duración que el intervalo de fechas base, cambiado por el período especificado. Además de los operadores de intervalo de fechas con nombre, COMPARE TO
acepta los siguientes operadores relativos:
Operador de intervalo de fechas relativas | Descripción |
---|---|
previous_period | Un período antes del intervalo de fechas base. |
previous_year | Un año antes del intervalo de fechas base. |
previous_quarter | Un trimestre antes del intervalo de fechas base. |
previous_month | Un mes antes del intervalo de fechas base. |
previous_week | Una semana antes del intervalo de fechas base. |
previous_day | Un día antes del intervalo de fechas base. |
previous_hour | Una hora antes del intervalo de fechas base. |
previous_minute | Un minuto antes del intervalo de fechas base. |
previous_second | Un segundo antes del intervalo de fechas base. |
ORDER BY
Puedes especificar cómo deseas ordenar los datos que obtengas con tu consulta usando la palabra clave ORDER BY
y sus parámetros: ASC
para el orden ascendente y DESC
para el orden descendente.
En la palabra clave ORDER BY
, puedes especificar cualquier métrica o dimensión que incluyas en tu consulta, incluidos varios campos.
Por ejemplo, esta consulta devuelve las ventas netas de todos los productos y variantes durante el último año. Los resultados se ordenan primero en orden alfabético por título del producto y luego en orden alfabético inverso por tipo de producto:
FROM sales
SHOW net_sales
GROUP BY product_title, product_type
SINCE -1y
UNTIL today
ORDER BY product_title, product_type DESC
El orden en el que escribes tus métricas o dimensiones es importante. Si especificas varios valores para ORDER BY
, la clasificación se aplicará a cada métrica o dimensión en el pedido dado.
TIMESERIES y el orden de las columnas
Dependiendo de si la consulta incluye TIMESERIES
y ORDER BY
, el orden de las columnas puede cambiar.
TIMESERIES | ORDER BY | Resultado |
---|---|---|
Presentar | No presente | Los resultados se ordenan por la dimensión TIMESERIES . |
Presentar | Presentar | Los resultados se ordenan por la dimensión de tiempo TIMESERIES y luego la dimensión ORDER BY . |
No presente | Presentar | Los resultados se ordenan por la dimensión ORDER BY . |
No presente | No presente | Los resultados se ordenan por la primera columna de resultados SHOW . |
LIMIT
La palabra clave LIMIT
te permite especificar una cantidad máxima de filas que devuelve la consulta. Esto es útil cuando simplemente quieres entender cómo se muestran los datos en cada columna o para informes más grandes donde las consultas pueden tardar más en devolver los valores. Puedes combinar LIMIT
con ORDER BY
para crear listas superiores e inferiores.
Si no especificas un valor para LIMIT
, la consulta se establecerá de manera predeterminada en 1.000 filas.
También puedes usar un parámetro opcional { OFFSET # }
para omitir cierta cantidad de filas antes de comenzar la devolución de datos de las filas. La frase resultante tendría un formato similar a: LIMIT 15 { OFFSET 5 }
.
En este ejemplo se usa LIMIT
y ORDER BY
para crear una lista con los diez productos más vendidos de los últimos tres 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 y TYPE
La palabra clave VISUALIZE
te permite escribir una consulta de ShopifyQL que muestre los datos en una visualización gráfica. Las visualizaciones admitidas incluyen los siguientes valores:
-
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
La palabra clave TYPE
es opcional y debe ir acompañada de un único tipo de visualización. Si TYPE
no está incluida en tu consulta, ShopifyQL automáticamente decide cuál es la mejor opción para tu consulta. Si tu consulta no puede visualizarse como texto escrito, ShopifyQL mostrará datos tabulares.
VISUALIZE
también acepta una palabra clave opcional LIMIT
donde el parámetro es el número limitado de puntos de datos que se renderizarán.
Por ejemplo, puedes visualizar la tendencia que han experimentado tus ventas por mes en el último año con una línea de tendencia. La consulta siguiente dará como resultado un gráfico de serie cronológica con las ventas brutas por mes en el último año. Las ventas brutas se representarán en una sola línea, con el eje "X" etiquetado como mes y el "Y" etiquetado como ventas totales:
FROM sales
SHOW gross_sales
TIMESERIES month
SINCE -1y
UNTIL today
VISUALIZE gross_sales TYPE line
AS
La palabra clave AS
es opcional y requiere que cambies el nombre de una columna o una expresión (o brindes un alias).
AS
solo acepta un parámetro único. Si el alias tiene un espacio en el nombre, debes encerrarlo entre comillas dobles (").
FROM sales
SHOW total_sales AS "My Total Sales"
Otros operadores de ShopifyQL
ShopifyQL incluye los siguientes operadores adicionales:
-
Operadores matemáticos, como
+
o/
- Uniones implícitas
-
Coincidencias parciales de cadenas y matrices, como
STARTS WITH
yCONTAINS
- Comentarios
Operadores matemáticos
ShopifyQL permite realizar operaciones aritméticas con las métricas de tus datos. Los siguientes operadores matemáticos están disponibles:
Operadores matemáticos | Descripción |
---|---|
+ | Suma de dos números. |
- | Resta de dos números. |
* | Multiplicación de dos números. |
/ | División de dos números. |
Por ejemplo, esta consulta calcula el valor del pedido para cada región durante el último año. Cuando usas operadores matemáticos con métricas, puedes emplear la palabra clave AS
para asignar un nombre nuevo a la métrica nueva. Ten en cuenta que existen limitaciones en el uso de expresiones matemáticas.
FROM sales
SHOW (net_sales + returns) AS order_value, orders
GROUP BY billing_region
SINCE -1y
UNTIL today
Uniones implícitas
Una unión te permite ver métricas de diferentes dominios juntas, una al lado de la otra. Las uniones se realizan de forma implícita e inteligente en ShopifyQL.
ShopifyQL cuenta con las siguientes capacidades de unión:
- ShopifyQL permite las uniones de campos de dimensión cuando hay una sola tabla
FROM
en la consulta. - Permite la unión izquierda automática en campos de dimensión.
- ShopifyQL permite las uniones de múltiples hechos (cuando hay varias tablas
FROM
en las consultas). - Permite la unión completa automática en uniones de múltiples hechos, que admiten cualquier cantidad de tablas o esquemas, y el agrupamiento por dimensiones.
- Las métricas en uniones de múltiples hechos pueden usar cálculos matemáticos.
ShopifyQL tiene las siguientes restricciones para las uniones:
- El campo de unión debe tener el mismo nombre en todos los esquemas unidos.
- El campo de unión debe estar en
GROUP BY
. - El campo de unión no puede utilizar cálculos matemáticos.
-
FROM
es necesario para que las uniones de múltiples hechos funcionen. - En una unión de múltiples hechos, cada
GROUP BY
debe estar presente en todos los esquemas y se considera un campo en el que se realizan uniones.
Por ejemplo, esta consulta utiliza una unión de múltiples hechos:
FROM sales, sessions
SHOW day, total_sales, sessions
GROUP BY day
SINCE 2023-10-03
ORDER BY day
Coincidencia parcial de cadenas y arrays
Puedes utilizar los siguientes operadores para la coincidencia parcial de cadenas y arrays:
Operador | Descripción |
---|---|
STARTS WITH | Devuelve todas las filas en las que una columna comienza con un prefijo. |
ENDS WITH | Devuelve todas las filas en las que una columna termina con un sufijo. |
CONTAINS | Devuelve todas las filas en las que una columna contiene una parte de una cadena o un elemento de un array. |
Algunos ejemplos de coincidencia parcial de cadenas mediante operadores incluyen las siguientes 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
Se puede utilizar el operador CONTAINS
para establecer coincidencias de elementos y arrays, incluidos números enteros, cadenas y decimales. Esta coincidencia no distingue entre mayúsculas y minúsculas. Algunos ejemplos de coincidencia de arrays en las que se utiliza CONTAINS
incluyen las siguientes 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'
Comentarios
Puedes usar comentarios para explicar secciones de declaraciones de ShopifyQL o para evitar la ejecución de una declaración ShopifyQL. Cualquier texto dentro de un comentario se ignorará durante el tiempo de ejecución.
Los comentarios de una sola línea comienzan --
y terminan al final de la línea.
Los comentarios en varias líneas comienzan con /*
y terminan con */
.
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
*/