Cuando introduce su consulta en el Editor SQL o crea un cálculo, utiliza sintaxis Presto SQL. Por ejemplo, en el Editor SQL, puede componer una consulta completa SELECT
para encontrar los Orígenes a incluir y luego filtrar sus datos:
SELECT DISTINCT columna, AGG_FUNC(columna_o_expresión), ... FROM origen JOIN otra_fuente ON fuente.columna = otra_fuente.column WHERE constraint_expression GROUP BY column HAVING constraint_expression ORDER BY column ASC/DESC LIMIT count OFFSET COUNT
Nota: Para garantizar la integridad de los datos, el editor SQL admite sentencias de sólo lectura como SELECT
, pero no sentencias de lectura/escritura como INSERT
o DELETE
.
Además de estas cláusulas y sentencias, su sintaxis SQL puede contener varias funciones y operadores para definir mejor los resultados y realizar cálculos:
- Funciones de cadena de texto
- Funciones de fecha y hora
- Funciones de conversión
- Expresiones condicionales
- Funciones y operadores agregados y matemáticos
- Funciones JSON
- Funciones y operadores de comparación
Orden de las operaciones
Aunque no todas las consultas incluyen todas las cláusulas, cada parte de la sentencia SQL se ejecuta en una secuencia determinada:
-
FROM
yJOIN
, para determinar las fuentes de los datos consultados -
WHERE
, para incluir sólo los datos que cumplan criterios específicos -
GROUP BY
, para resumir datos basándose en valores comunes. -
HAVING
, para incluir sólo los datos de las Filas agregadas que cumplan unos criterios específicos. -
SELECT
oSELECT DISTINCT
, para especificar aún más qué datos de origen incluir -
ORDENAR POR
, para especificar cómo ordenar los datos en los resultados. -
LIMIT
yOFFSET
, para especificar cuántos -y qué- registros de la consulta incluir.
Comprender el orden en que la consulta ejecuta su sintaxis SQL puede ayudarle a identificar los resultados disponibles en cada etapa.
FROM
y JOIN
Para determinar los datos que se consultan, la consulta ejecuta primero el comando FROM
, que especifica el origen del que seleccionar los datos.
Para incluir datos de múltiples Orígenes, incluya una cláusula JOIN
para combinar las Filas de los Orígenes basándose en una columna relacionada:
-
INNER JOIN
selecciona los registros coincidentes en ambas fuentes. -
LEFT JOIN
selecciona todos los registros del origen de la Izquierda, y también los que coincidan en el origen de la Derecha. -
RIGHT JOIN
selecciona todos los registros del Origen Derecha, y también los coincidentes en el Origen Izquierda. -
FULL JOIN
selecciona todos los registros en o Origen.
Para compilar datos de más de dos orígenes, puede aplicar varias cláusulas JOIN
para combinar los orígenes en orden. Por ejemplo, para combinar pedidos con datos sobre sus clientes y expedidores:
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName FROM ((Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID) INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID)
Nota: En Query Builder, se crea una cláusula JOIN
como una relación .
DONDE
Después de que la consulta determina sus Orígenes basándose en las cláusulas FROM
y JOIN
, ejecuta la cláusula WHERE
para filtrar los resultados a sólo los datos que cumplan criterios específicos.
GRUPO POR
Si la consulta contiene funciones de agregación, puede incluir una sentencia GROUP BY
para resumir sus filas basándose en valores comunes en la columna especificada, como GROUP BY nombre(s) de columna
.
TENIENDO
Si la consulta incluye una sentencia GROUP BY
, aplica las restricciones de la cláusula HAVING
. De forma similar a WHERE
, HAVING
incluye sólo los datos de las filas agregadas que cumplen los criterios específicos y descarta las filas que no los cumplen.
SELECCIONE
o SELECCIONE DISTINTO
Después de que la consulta aplique las restricciones de la cláusula WHERE
a los orígenes determinados por las cláusulas FROM
y JOIN
y agrupe las Filas basándose en la sentencia GROUP BY
y la cláusula HAVING
, aplica cualquier expresión en la sentencia SELECT
para especificar aún más los datos a incluir. Por ejemplo:
-
SELECT columna1, columna2 FROM origen
devuelve sólo los camposcolumna1
ycolumna2
deorigen
. -
SELECT * FROM origen
devuelve todos los campos deorigen
.
Si la consulta incluye una sentencia SELECT DISTINCT
, entonces excluye cualquier Fila con valores duplicados de cada columna.
ORDENAR POR
Si la consulta incluye una palabra clave ORDER BY
, ordena los resultados en orden ascendente o descendente -ASC
o DESC
- en función de la columna especificada. Por ejemplo, ORDER BY field_header ASC
.
Para ordenar según varios campos, separe cada uno con una coma, como ORDER BY campo_encabezado1 ASC, campo_encabezado2 DESC
.
Nota: El valor por defecto de ORDER BY
es ASC
. Si no especifica ASC
o DESC
a continuación del nombre del campo en la sentencia ORDER BY
, se ordenará automáticamente en orden ascendente.
LIMIT
y OFFSET
Por último, la consulta descarta las Filas que quedan fuera del rango de sus cláusulas LIMIT
y OFFSET
.
- Para devolver un número concreto de registros en los resultados, incluya una cláusula
LIMIT
. Por ejemplo, para devolver los 30 primeros registros de un Origen,SELECT * FROM origen LIMIT 30
. - Para devolver un número específico de registros pero no empezar con el primer registro en el origen, agregue una cláusula
OFFSET
con el número de registros a omitir. Por ejemplo, para devolver diez registros empezando por el 16,SELECT * FROM origen LIMIT 10 OFFSET 15.