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.

Glosario de términos

Definiciones de términos de ShopifyQL, como dimensión, palabra clave y operador.
TérminoDefinición
DimensiónUn 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 claveSintaxis de ShopifyQL que actúa como un comando para dirigir tu consulta.
MétricaUna medición cuantitativa de datos. Algunos ejemplos comunes de métricas son las ventas totales, la cantidad de pedidos y las ganancias brutas.
ParámetroSintaxis de ShopifyQL que identifica los elementos o detalles de la base de datos que se deben incluir en tu consulta.
OperadorPalabra 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 y SHOW, 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:
    1. FROM
    2. SHOW
    3. WHERE
    4. GROUP BY
    5. TIMESERIES
    6. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    7. HAVING
    8. SINCE y UNTIL o DURING
    9. COMPARE TO y opcional UNTIL
    10. ORDER BY
    11. LIMIT
    12. VISUALIZE y TYPE

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.

Lista de palabras clave de ShopifyQL y sus descripciones.
Palabra claveDescripción
FROMEspecifica de qué tabla de datos deseas seleccionar la información.
SHOWSelecciona las columnas que deseas extraer de la tabla de datos.
WHEREDefine la condición o las condiciones que deben cumplir las filas para que se seleccionen.
GROUP BYAgrupa los datos extraídos por una dimensión o por dimensiones de tiempo.
TIMESERIESDistingue la agrupación por dimensiones de tiempo y completa datos de fechas en una consulta.
WITHModifica el comportamiento de ciertas palabras clave de ShopifyQL.
HAVINGFiltra los resultados de una consulta después de que se han agrupado.
SINCEMuestra datos desde una hora especificada en el pasado. A menudo se empareja con UNTIL.
UNTILMuestra datos hasta un momento concreto del pasado. A menudo se empareja con SINCE o COMPARE TO.
DURINGMuestra los datos durante un tiempo especificado en el pasado.
COMPARE TOMuestra los datos para la comparación con un tiempo especificado en el pasado.
ORDER BYEspecifica en función de qué columna ordenar los datos.
LIMITLimita el número de filas de datos que se muestran.
VISUALIZEMuestra los datos en una visualización en forma de líneas o de barras. Puedes especificar qué visualización prefieres con TYPE.
ASPalabra 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:

Lista de operadores relacionales de ShopifyQL, como mayor que o igual a.
Operador relacionalDescripció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:

Lista de operadores lógicos de ShopifyQL, como AND, OR y NOT.
Operador lógicoDescripción
ANDFiltra para incluir todas las filas donde se cumplan las condiciones separadas por AND.
ORFiltra para incluir todas las filas donde se cumpla alguna de las condiciones separadas por OR.
NOTFiltra 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:

Lista de dimensiones de tiempo de ShopifyQL, como segundo, minuto o día de la semana.
OperadorDescripción
secondAgrupar por segundos de hora.
minuteAgrupar por minutos de hora.
hourAgrupar por hora de día calendario.
dayAgrupar por día calendario.
weekAgrupar por semana calendario.
monthAgrupar por mes calendario.
quarterAgrupar por trimestre calendario.
yearAgrupar por año natural.
hour_of_dayAgrupar desde cero por 24 horas (0, 1, ..., 23).
day_of_weekAgrupar desde cero por día de la semana (0, 1, ..., 6).
week_of_yearAgrupar por semana del año (1, 2, …, 52).
month_of_yearAgrupar 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.

Ejemplos de TIMESERIES y como se muestra el orden de las columnas con GROUP BY o SHOW en ShopifyQL.
TIMESERIESSHOWGROUP BYResultado
IndicadaNo presenteNo presente TIMESERIES es la primera dimensión.
IndicadaNo presentePresentarLa posición de las dimensiones de tiempo se define por su posición en GROUP BY.
IndicadaPresentarPresentarLa posición de las dimensiones de tiempo se define por su posición en SHOW.
No indicadaNo presentePresentarLa posición de las dimensiones de tiempo se define por su posición en GROUP BY. Los datos no se completan.
No indicadaPresentarPresentarLa posición de las dimensiones de tiempo se define por su posición en SHOW. Los datos no se completan.
No indicadaPresentarNo presenteActiva 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 en COMPARE 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:

Ejemplo de tabla de ShopifyQL de ventas con WITH TOTALS.
DíaVentas brutasVentas netasTotal de ventas
Resumen61524
01/01/2024147
02/01/2024258
03/01/2024369

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:

Ejemplo de tabla de ventas de ShopifyQL que usa GROUP_TOTALS.
PaísIdentificación del clienteTotal de ventas
Resumen (EE. UU. y Canadá)-1
Totales del grupo de EE. UU.-0
EE.UU.11
EE.UU.nulo-1
Totales del grupo de Canadá-1
Canadá11

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:

Lista de operadores de intervalos de tiempo de ShopifyQL, como el intervalo de tiempo por segundos, minutos o una fecha específica.
Operador de intervalos de tiempoDescripción
-{#}sNúmero de segundos transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}minNúmero de minutos transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}hNúmero de horas transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}dNúmero de días transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}wNúmero de semanas transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}mNúmero de meses transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}qNúmero de trimestres transcurridos desde la fecha y hora en que se ejecuta la consulta.
-{#}yNúmero de años transcurridos desde la fecha y hora en que se ejecuta la consulta.
yyyy-MM-ddUna fecha específica.
yyyy-MM-ddThh:mm:ssUna 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.

Lista de funciones de fecha de ShopifyQL, como el final del día o el inicio del trimestre.
Función de fechaDescripción
nowLa 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:

Lista de operadores de intervalo de fechas con nombre de ShopifyQL, como hoy, ayer o esta semana.
Operador de intervalo de fechas con nombreDescripción
todayLa fecha en que se ejecuta la consulta.
yesterdayEl período previo de 24 horas que transcurre desde el momento en que se ejecuta la consulta.
this_weekLa semana calendario actual.
this_monthEl mes calendario actual.
this_quarterEl trimestre calendario actual.
this_yearEl año natural previo o actual.
last_weekLa semana calendario anterior.
last_monthEl mes calendario anterior.
last_quarterEl trimestre calendario anterior.
last_yearLos años calendario previos.
bfcmYYYYEl 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 valor UNTIL, calcula el intervalo de tiempo para que sea igual al valor especificado en DURING. 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.
  • 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 usar TIMESERIES en lugar de GROUP 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:

Lista de operadores de intervalo de fechas relativas de ShopifyQL, como el período anterior o el año anterior.
Operador de intervalo de fechas relativasDescripción
previous_periodUn período antes del intervalo de fechas base.
previous_yearUn año antes del intervalo de fechas base.
previous_quarterUn trimestre antes del intervalo de fechas base.
previous_monthUn mes antes del intervalo de fechas base.
previous_weekUna semana antes del intervalo de fechas base.
previous_dayUn día antes del intervalo de fechas base.
previous_hourUna hora antes del intervalo de fechas base.
previous_minuteUn minuto antes del intervalo de fechas base.
previous_secondUn 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.

Ejemplo de TIMESERIES y del orden de las columnas cuando ORDER BY está presente usando ShopifyQL.
TIMESERIESORDER BYResultado
PresentarNo presenteLos resultados se ordenan por la dimensión TIMESERIES.
PresentarPresentarLos resultados se ordenan por la dimensión de tiempo TIMESERIES y luego la dimensión ORDER BY.
No presentePresentarLos resultados se ordenan por la dimensión ORDER BY.
No presenteNo presenteLos 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

ShopifyQL permite realizar operaciones aritméticas con las métricas de tus datos. Los siguientes operadores matemáticos están disponibles:

Lista de operadores matemáticos de ShopifyQL, incluidos más y menos.
Operadores matemáticosDescripció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:

Lista de operadores de coincidencia parcial de cadenas y arrays en ShopifyQL.
OperadorDescripción
STARTS WITHDevuelve todas las filas en las que una columna comienza con un prefijo.
ENDS WITHDevuelve todas las filas en las que una columna termina con un sufijo.
CONTAINSDevuelve 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
*/
¿No encuentras las respuestas que estás buscando? Estamos aquí para ayudarte.