Cuando ingresas tu consulta en el Editor SQL o creas un cálculo, utilizas la Sintaxis Presto SQL. Por ejemplo, en el Editor SQL, puedes componer una consulta completa SELECT para encontrar las fuentes que debes incluir y, a continuación, 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, tu 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
- Agregación y funciones y operadores matemáticos
- Funciones JSON
- Funciones y operadores de comparación
Orden de operaciones
Aunque no todas las consultas incluyen todas las cláusulas, cada parte de la sentencia SQL se ejecuta en una secuencia determinada:
-
FROMyJOIN, para determinar las fuentes de los datos consultados. -
WHERE, para incluir solo los datos que cumplan criterios específicos -
AGRUPAR POR, para resumir datos basados en valores comunes -
TENIENDO, para incluir solo los datos de las filas agregadas que cumplan criterios específicos. -
SELECCIONARoSELECCIONAR DISTINTO, para especificar aún más qué datos de origen incluir. -
ORDENAR POR, para especificar cómo ordenar los datos en los resultados -
LIMITyOFFSET, para especificar cuántos -y cuáles- Registros de la consulta incluir.
Entender el orden en que la consulta ejecuta su Sintaxis SQL puede ayudarte a identificar los resultados disponibles en cada etapa.
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 varias fuentes, incluye una cláusula JOIN para combinar las filas de las fuentes basándote en una columna relacionada:
-
INNER JOINselecciona los Registros coincidentes en ambos orígenes. -
JOIN IZQUIERDOselecciona todos los Registros desde el origen izquierdo, y también cualquiera que coincida en el origen derecho. -
RIGHT JOINselecciona todos los registros desde el origen derecho, y también cualquiera que coincida en el origen izquierdo. -
FULL JOINselecciona todos los Registros en o en origen.
Para compilar datos de más de dos orígenes, puedes aplicar varias cláusulas JOIN para combinar los orígenes en orden. Por ejemplo, para combinar pedidos con datos sobre sus clientes y remitentes:
SELECT Pedidos.OrderID, Clientes.CustomerName, Cargadores.ShipperName FROM ((Pedidos INNER JOIN Clientes ON Pedidos.CustomerID = Clientes.CustomerID) INNER JOIN Cargadores ON Pedidos.ShipperID = Cargadores.ShipperID)
Nota: En Generador de consultas, se crea una cláusula JOIN como una relación .
DONDE
Después de que la consulta determine sus orígenes basándose en las cláusulas FROM y JOIN, ejecuta la cláusula WHERE para filtrar los resultados solo a los datos que cumplan criterios específicos.
AGRUPAR POR
Si la consulta contiene funciones de agregación, 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.
TENIENDO
Si la consulta incluye una sentencia GROUP BY, aplica las restricciones de la cláusula HAVING. Similar a WHERE, HAVING incluye solo los datos de las filas agregadas que cumplen los criterios específicos y descarta las filas que no los cumplen.
SELECCIONAR o SELECCIONAR 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 en 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 origendevuelve solo los camposcolumna1ycolumna2deorigen. -
SELECT * FROM origendevuelve todos campos deorigen.
Si la consulta incluye una sentencia SELECT DISTINCT, excluye las filas con valores duplicados de cada columna.
ORDENAR POR
Si la consulta incluye la palabra clave ORDENAR POR, 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 por varios campos, separa cada uno con una coma, como ORDER BY campo_encabezado1 ASC, campo_encabezado2 DESC.
Nota: El valor predeterminado de ORDER BY es ASC. Si no especificas ASC o DESC a continuación del nombre del campo en la sentencia ORDENAR POR, se ordenará automáticamente en orden ascendente.
LÍMITE y DESPLAZAMIENTO
Por último, la consulta descarta las filas que queden fuera del alcance de sus cláusulas LIMIT y OFFSET.
- Para devolver un número concreto de registros en los resultados, incluye 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 concreto de Registros, pero no empieza por el primer Registro del Origen, añade una cláusula
OFFSETcon el número de Registros que deseas omitir. Por ejemplo, para devolver diez registros empezando por el 16,SELECT * FROM origen LIMIT 10 OFFSET 15.