Cuando introduce su consulta en el Editor SQL o crea un cálculo, utiliza la sintaxis de Presto SQL. Por ejemplo, en el Editor SQL, puede componer una consulta completa SELECT
para encontrar las fuentes que desea incluir y, a continuación, filtrar sus datos:
SELECT DISTINCT columna, AGG_FUNC(columna_o_expresión), ... FROM fuente 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 aún más 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 criterios específicos -
SELECT
oSELECT DISTINCT
, para especificar aún más qué datos de origen incluir -
ORDER BY
, para especificar cómo ordenar los datos en los resultados -
LIMIT
yOFFSET
, para especificar cuántos -y qué- registros de la consulta se incluirán
Comprender el orden en que la consulta ejecuta su sintaxis SQL puede ayudarle a identificar los resultados disponibles en cada paso.
FROM
y JOIN
Para determinar los datos consultados, la consulta ejecuta primero el comando FROM
, que especifica la fuente de la que seleccionar los datos.
Para incluir datos de múltiples fuentes, incluya una cláusula JOIN
para combinar las filas de las fuentes basándose en una columna relacionada:
-
INNER JOIN
selecciona los registros coincidentes en ambas fuentes. -
LEFT JOIN
selecciona todos los registros de la fuente izquierda, y también los que coincidan en la fuente derecha. -
RIGHT JOIN
selecciona todos los registros de la fuente derecha, y también los que coincidan en la fuente izquierda. -
FULL JOIN
selecciona todos los registros en o fuente.
Para compilar datos de más de dos fuentes, puede aplicar varias cláusulas JOIN
para combinar las fuentes 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 fuentes 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 agregadas, puede incluir una sentencia GROUP BY
para resumir sus filas basándose en valores comunes de la columna especificada, como GROUP BY nombre(s) de columna(s)
.
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 las fuentes determinadas 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 de la sentencia SELECT
para especificar aún más los datos a incluir. Por ejemplo:
-
SELECT columna1, columna2 FROM fuente
devuelve sólo los camposcolumna1
ycolumna2
defuente
. -
SELECT * FROM fuente
devuelve todos los campos defuente
.
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
después del nombre del campo en la sentencia ORDER BY
, se ordenará automáticamente en orden ascendente.
LIMIT
y OFFSET
Por último, la consulta descarta cualquier fila que quede fuera del rango de sus cláusulas LIMIT
y OFFSET
.
- Para devolver un número específico de registros en los resultados, incluya una cláusula
LIMIT
. Por ejemplo, para devolver los 30 primeros registros de una fuente,SELECT * FROM fuente LIMIT 30
. - Para devolver un número concreto de registros pero no empezar por el primer registro del origen, añada una cláusula
OFFSET
con el número de registros que desea omitir. Por ejemplo, para devolver diez registros empezando por el 16,SELECT * FROM fuente LIMIT 10 OFFSET 15.