Usar ShopifyQL en Notebooks

ShopifyQL 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. Puedes usar ShopifyQL con la aplicación Notebooks 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.

Para ver una lista completa de los valores y dimensiones disponibles que se pueden usar en las consultas de ShopifyQL Notebook, consulta el esquema de pedidos y el esquema de productos.

Resumen de ShopifyQL

Los datos de tu tienda se almacenan en tablas de bases de datos, estructuradas en 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 2450 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. Un lenguaje de consulta, como ShopifyQL, es una forma estandarizada de construir esa pregunta. Las consultas están 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 una respuesta.

A continuación te mostramos un ejemplo de sintaxis de ShopifyQL, redactada a modo de consulta. Las palabras clave están en negrita y sus parámetros correspondientes están entre corchetes. Los parámetros que se muestran aquí son marcadores de posición:

FROM { table_name }
  SHOW { column1, column2, ... }
  GROUP BY { dimension | date_group }
  WHERE { condition }
  SINCE { date_offset }
  UNTIL { date_offset }
  ORDER BY { column } DESC
  LIMIT { count }

Glosario de términos

Definiciones de términos de ShopifyQL
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.

Tabla de referencia de palabras clave

Estas son las palabras clave que puedes usar para escribir tu consulta:

Lista de palabras clave de ShopifyQL
Palabra claveUso funcional
FROMEspecifica de qué tabla de conjunto de datos deseas seleccionar la información.
SHOWSelecciona las columnas que deseas extraer de la tabla de conjunto de datos.
VISUALIZEMuestra los datos en una visualización en forma de líneas o de barras.
GROUP BYAgrupa los datos extraídos por una dimensión o por dimensiones de tiempo.
WHEREDefine la condición o las condiciones que deben cumplir las filas para que se seleccionen.
SINCEMuestra datos a partir de un momento concreto del pasado.
UNTILMuestra datos hasta un momento concreto del pasado.
DURINGMuestra datos a partir de un momento concreto del pasado.
COMPARE TOMuestra datos hasta un momento concreto del pasado.
ORDER BYEspecifica en función de qué columna ordenar los datos.
LIMITLimita el número de filas de datos que se muestran.
ASCambia el nombre de una columna por el nombre que elijas.

Escribir consultas 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.

Conceptos básicos de ShopifyQL: 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 un parámetro de nombre de tabla, especifica qué tabla deseas consultar. SHOW, seguido de un parámetro de nombre de columna, especifica las columnas que deseas seleccionar.

Por ejemplo, puedes enumerar todas las identificaciones de productos y sus nombres correspondientes de la tabla de ventas escribiendo esta consulta:

FROM products
  SHOW product_id, product_title

Agrupar datos: 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 los precios de envío por país y región de facturación se escribe del siguiente modo:

FROM orders
  SHOW shipping
  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 netas por mes:

FROM orders
  SHOW net_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 el modificador ALL:

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  SINCE last_year
  UNTIL today

Si usas el modificador ALL, también debes especificar SINCE y UNTIL. Ten en cuenta que el modificador ALL solo funciona con la dimensión de tiempo.

Dimensiones de tiempo

Estas son las dimensiones de tiempo que puedes usar para agrupar tus datos:

Dimensiones del tiempo de ShopifyQL
OperadorUso funcional
hourAgrupar por hora de día calendario.
dayAgrupar por día calendario.
weekAgrupar por semana calendario.
mesAgrupar por mes calendario.
quarterAgrupar por trimestre calendario.
yearAgrupar por año calendario.
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).

Filtrar datos: WHERE

La palabra clave WHERE te permite aplicar un filtro dimensional a toda una consulta de ShopifyQL.

Por ejemplo, si deseas obtener las ventas netas agrupadas por mes, pero solo de una región específica, tu consulta será:

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  WHERE billing_region = 'ohio'
  SINCE last_year
  UNTIL today

Como puedes ver en el ejemplo anterior, puedes filtrar el resultado establecido con el parámetro WHERE incluso si ese parámetro no está incluido en las palabras clave SHOW o GROUP BY. En este caso, las ventas netas se filtran en todos los meses para los pedidos con una dirección de facturación solo en Ohio, aunque billing_region no se incluya 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:

Operadores relacionales de ShopifyQL
Operador relacionalUso funcional
=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:

Operadores lógicos de ShopifyQL
Operador lógicoUso funcional
ANDFiltra para mostrar todas las filas donde se cumplan las condiciones separadas por AND.
ORFiltra para mostrar todas las filas donde se cumpla alguna de las condiciones separadas por OR.
NOTFiltra para mostrar 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 en los que la dirección de facturación estaba en Ohio y se aplicó un descuento, la consulta es:

FROM orders
  SHOW net_sales
  GROUP BY month ALL
  WHERE billing_region = 'ohio' AND discounts > 0
  SINCE last_year
  UNTIL today

Intervalo de fechas: 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.

Por ejemplo, veamos una consulta para encontrar las ventas netas durante los últimos 12 meses en Canadá, hasta el día de hoy:

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

Operadores de intervalos de tiempo

Puedes filtrar por fechas específicas o por intervalos de fechas. Los operadores de intervalos de tiempo de ShopifyQL son los siguientes:

Operadores de intervalos de tiempo de ShopifyQL
Operador de intervalos de tiempoUso funcional
-{#}dNúmero de días desde el día en que se ejecuta la consulta.
-{#}wNúmero de semanas transcurridas desde el día en que se ejecuta la consulta.
-{#}mNúmero de meses transcurridos desde el día en que se ejecuta la consulta.
-{#}qNúmero de trimestres transcurridos desde el día en que se ejecuta la consulta.
-{#}yNúmero de años transcurridos desde el día en que se ejecuta la consulta.
aaaa-mm-ddUna fecha específica.
hoyFecha en que se ejecuta la consulta.
ayerEl período previo de 24 horas que transcurre desde el momento en que se ejecuta la consulta.

Filtrar por intervalos de fechas: DURING

La palabra clave DURING simplifica el filtrado de fechas para los intervalos de fechas. Puedes usar la palabra clave DURING para filtrar los resultados de la consulta por un período conocido, como un año calendario o un mes específico, o para los intervalos de fechas que tienen fechas diferentes cada año, como Black Friday Cyber Monday. Por ejemplo:

FROM orders
  SHOW sum(net_sales)
  GROUP BY day ALL
  DURING bfcm2021

DURING acepta cualquiera de los siguientes operadores de intervalo de fechas con nombre:

Operadores de intervalo de fechas con nombre ShopifyQL
Operador de intervalo de fechasUso funcional
hoyLa fecha en que se ejecuta la consulta.
ayerEl 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 calendario previo o actual.
last_weekLa semana calendario anterior.
last_monthEl mes calendario anterior.
last_quarterEl trimestre calendario anterior.
last_yearLos años calendario previos.
bfcm2022Del 25 de noviembre al 28 de noviembre de 2022.
bfcm2021Del 26 al 29 de noviembre de 2021.

Comparación entre los intervalos de fechas: COMPARE TO

La palabra clave COMPARE TO te permite comparar los datos en el intervalo de fechas en DURING y en el de COMPARE TO. Acepta cualquiera de los operadores de intervalo de fechas mencionados en la sección DURING . El operador que usa COMPARE TO debe tener la misma duración que la que usó DURING. Por ejemplo, DURING this_week COMPARE TO last_week es una combinación válida pero DURING this_week COMPARE TO last_month no lo es.

El siguiente ejemplo compara las ventas netas durante Black Friday Cyber Monday 2022 con Black Friday Cyber Monday 2021.

FROM orders
  SHOW sum(net_sales)
  GROUP BY day ALL
  DURING bfcm2022
  COMPARE TO bfcm2021

Ordenar datos: 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 para cada país y región de facturación, ordenada por orden alfabético inverso por país de facturación y luego por región de facturación dentro de cada país.

FROM orders
  SHOW net_sales
  GROUP BY billing_country, billing_region
  SINCE -1y
  UNTIL today
  ORDER BY billing_country, billing_region 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.


Limitar

La palabra clave LIMIT te permite especificar cuántas filas devuelve la consulta. Esto resulta útil cuando simplemente deseas observar la apariencia de los datos en cada columna. También puedes combinarla con ORDER BY para crear listas superiores e inferiores.

Este ejemplo usa LIMIT y ORDER BY para crear una lista con los diez productos más vendidos por cantidad de los últimos tres meses:

FROM products
  SHOW net_product_quantity
  GROUP BY product_title
  SINCE -3m
  UNTIL today
  ORDER BY net_product_quantity DESC
  LIMIT 10

Graficar las consultas: VISUALIZE y TYPE

La palabra clave VISUALIZE te permite escribir una consulta de ShopifyQL que muestre los datos en una visualización en forma de líneas o de barras.

La palabra clave TIPO es opcional y debe ir acompañada de "línea" o "barra" para que la consulta devuelva una visualización a modo de gráfico de líneas o de gráfico de barras, respectivamente. Si TIPO no se incluye en la consulta, ShopifyQL decide automáticamente cuál es la visualización más adecuada. Si tu consulta no puede visualizarse como texto escrito, ShopifyQL mostrará datos tabulares.

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 orders
  VISUALIZE gross_sales
  TYPE line
  GROUP BY month ALL
  SINCE -1y
  UNTIL today

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 de intervalos de tiempo de ShopifyQL
Operadores matemáticosUso funcional
+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 nueva métrica.

FROM orders
  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 similares a las tablas dinámicas en Microsoft Excel. Esto significa combinarlas para crear un valor nuevo. Los siguientes operadores de funciones están disponibles en la versión actual de ShopifyQL:

Operadores de intervalos de tiempo de ShopifyQL
Operador de funcionesUso funcional
count()Recuento de instancias en el conjunto de resultados.
sum()Suma de valores en el conjunto de resultados.
min()Valor mínimo en el conjunto de resultados.
max()Valor máximo en el conjunto de resultados.
avg()Valor promedio en el resultado establecido.

Las funciones sum, min, max y avg solo se pueden usar con valores numéricos, mientras que count pueden usarse para contabilizar diferentes casos de atributos dimensionales. No puedes usar campos agregados como argumentos en las funciones. Los campos agregados terminan en _sum, _count o _percent.

Por ejemplo, la siguiente consulta devolverá un error, ya que ventas_totales ya es un valor agregado:

FROM orders
  SHOW sum(total_sales)

A continuación te mostramos una consulta válida que mezcla campos agregados con funciones agregadas:

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

Esta consulta devuelve la suma agregada del valor promedio de los pedidos y la suma bruta de ventas como resultado de la función sum. Estas métricas se desglosan por región de facturación para todos los pedidos realizados en 2021.


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 orders
  SHOW average_order_value, sum(gross_sales)
  -- the line below has been commented out and will not run
  -- GROUP BY billing_region
  WHERE billing_country = 'United States'
  /*
  this line and the two lines below it have been commented out and will not run
  SINCE 2021-01-01
  UNTIL 2021-12-31
*/
¿No encuentras las respuestas que estás buscando? Estamos aquí para ayudarte.