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. WITH TOTALS, GROUP_TOTALS, PERCENT_CHANGE
    6. TIMESERIES
    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.
WITHModifica el comportamiento de ciertas palabras clave de ShopifyQL.
TIMESERIESDistingue la agrupación por dimensiones de tiempo y completa datos de fechas en una consulta.
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'

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 discounts > 0

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 por 24 horas (1, 2, …, 24).
day_of_weekAgrupar por día de la semana (Lu, Ma, Mi, …, Do).
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 ventasVentas brutas totalesVentas netas totalesTotal de ventas totales
01/01/202414761524
02/01/202425861524
03/01/202436961524

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 ventasTotal de ventas totales por paísTotal de ventas totales
EE.UU.1101
EE.UU.nulo-111
Canadá1111

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 orders
SHOW net_sales
WHERE billing_country = 'Canada'
GROUP BY month ALL
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 una palabra clave opcional que te permite cambiar el nombre de una columna (o proporcionarle un alias) o el valor devuelto de una función agregada.

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"

Otras funciones y operadores de ShopifyQL

ShopifyQL incluye los siguientes operadores y funciones 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, la siguiente consulta calcula el valor de los pedidos en 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.

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

Funciones

Las funciones de ShopifyQL te permiten agregar columnas o combinarlas para crear un nuevo valor, similar a las tablas dinámicas en Microsoft Excel. Los siguientes operadores de funciones están disponibles en la versión actual de ShopifyQL:

Lista de funciones de ShopifyQL compatibles, como recorte y redondeo.
Operador de funcionesDescripción
TRIM(column_name)Elimina los espacios en blanco iniciales y finales de una cadena.
ROUND(column_name, decimal_places)Rounds a numerical value to the nearest integer or specified decimal places. In this function, decimal_places is an integer value:
  • If decimal_places > 0, then the function rounds the value to the right of the decimal point.
  • If decimal_places < 0, then the function rounds the value to the left of the decimal point.
  • If decimal_places = 0, then the function rounds the value to integer. In this case, the argument can be omitted entirely.

For example, this query uses the rounding function on the gross_sales column, but omits the decimal_places argument to round the value to the integer:

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

Implicit joins

A join allows you to view metrics from different domains together, side by side. Joins are done implicitly and intelligently in ShopifyQL.

ShopifyQL has the following join capabilities:

  • ShopifyQL allows dimension field joins when there is a single FROM table in the query.
  • Automatic left join on dimension fields.
  • ShopifyQL allows multi-fact joins (when there are multiple FROM tables in the queries).
  • Automatic full join on multi-fact joins, which support any number of tables or schemas and grouped by dimensions.
  • Metrics in multi-fact joins can use functions and math.

Shopify QL has the following join restrictions:

  • Join field must have the same name in all joined schemas.
  • Join field must be in GROUP BY.
  • Join field can't use functions or math.
  • FROM is necessary for multi-fact joins to work.
  • In a multi-fact join, every GROUP BY must be in all schemas and is considered a field on which to be joined.

For example, this query uses a multi-fact join:

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

Partial string and array matching

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

List of Partial string and array matching operators in ShopifyQL.
OperatorDescription
STARTS WITHReturn all rows where a column starts with a prefix.
ENDS WITHReturn all rows where a column ends with a suffix.
CONTAINSReturn all rows where a column contains a part of a string, or an element in an array.

Some examples of partial string matching using operators include the following queries:

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

The CONTAINS operator can be used to match elements within arrays, including integers, strings, and decimals. This matching isn't case-sensitive. Some examples of array matching using CONTAINS include the following queries:

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

Comments

You can use comments to explain sections of ShopifyQL statements, or to prevent the execution of a ShopifyQL statement. Any text within a comment will be ignored during execution time.

Single line comments start with -- and end at the end of the line.

Multi-line comments start with /* and end with */.

FROM sales
SHOW average_order_value, gross_sales
-- the line below has been commented out and won't run
-- GROUP BY billing_region
WHERE billing_country = 'United States'
/*
this line and the two lines below it have been commented out and won't run
SINCE 2021-01-01
UNTIL 2021-12-31
*/
¿No encuentras las respuestas que estás buscando? Estamos aquí para ayudarte.