Teradata - SubQueries
Una subconsulta devuelve registros de una tabla en función de los valores de otra tabla. Es una consulta SELECT dentro de otra consulta. La consulta SELECT llamada como consulta interna se ejecuta primero y el resultado es utilizado por la consulta externa. Algunas de sus características más destacadas son:
Una consulta puede tener varias subconsultas y las subconsultas pueden contener otra subconsulta.
Las subconsultas no devuelven registros duplicados.
Si la subconsulta devuelve solo un valor, puede usar el operador = para usarlo con la consulta externa. Si devuelve varios valores, puede usar IN o NOT IN.
Sintaxis
A continuación se muestra la sintaxis genérica de las subconsultas.
SELECT col1, col2, col3,…
FROM
Outer Table
WHERE col1 OPERATOR ( Inner SELECT Query);
Ejemplo
Considere la siguiente tabla de sueldos.
Numero de empleado | Bruto | Deducción | Salario neto |
---|---|---|---|
101 | 40.000 | 4000 | 36.000 |
102 | 80.000 | 6.000 | 74.000 |
103 | 90.000 | 7.000 | 83.000 |
104 | 75.000 | 5,000 | 70.000 |
La siguiente consulta identifica el número de empleado con el salario más alto. El SELECT interno realiza la función de agregación para devolver el valor máximo de NetPay y la consulta SELECT externa usa este valor para devolver el registro del empleado con este valor.
SELECT EmployeeNo, NetPay
FROM Salary
WHERE NetPay =
(SELECT MAX(NetPay)
FROM Salary);
Cuando se ejecuta esta consulta, produce el siguiente resultado.
*** Query completed. One row found. 2 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo NetPay
----------- -----------
103 83000