2
SQL SELECT – FROM – WHERE J.Pastorino Sub Querys Funciones de Agregación 2 Subconsultas anidadas A través de subconsultas se pueden realizar consultas de: (no) pertenencia a un conjunto = (NOT) IN Comparación de conjuntos con al menos uno = {<,>} SAME, para todos = {<,>} ALL Conjunto no vacío = EXISTS Conjunto vacío = NOT EXISTS 3 Ejemplo Sucursal(Nombre-suc , ciudad-suc, activo) Cuenta(nombre-suc,nro-cta ,saldo) Datos-cliente(nombre-cli,nro-cli ,direccion-cli) Prestamo(nombre-suc,nro-prestamo ,importe) Prestatario(nro-cli,nro-prestamo ) Cliente-cta(nro-cli,nro-cta ) 4 Subconsultas anidadas Select * From Cliente-Cta Where nro-Cli NOT IN (Select nro-cli From Prestatario) Listado de clientes a los que se les otorgó prestamos 5 Subconsultas anidadas Select * From Prestamo Where Importe >= All (Select importe From Prestamo) Listado de prestamos que tienen el mayor importe 6 Subconsultas anidadas Select * From Cliente-Cta CC Where Not Exists (Select 1 From Prestatario Where nro-cliente = CC.nro-cli) Listado de clientes y sus cuentas para los clientes que no hayan solicitado prestamos.

07 Consultas SQL Cont

Embed Size (px)

Citation preview

Page 1: 07 Consultas SQL Cont

SQL

SELECT – FROM – WHERE

J.Pastorino

Sub Querys Funciones de Agregación

2

Subconsultas anidadas

A través de subconsultas se pueden realizar consultas de:

(no) pertenencia a un conjunto = (NOT) INComparación de conjuntos

con al menos uno = {<,>} SAME,para todos = {<,>} ALL

Conjunto no vacío = EXISTS

Conjunto vacío = NOT EXISTS

3

Ejemplo

Sucursal(Nombre-suc, ciudad-suc, activo)

Cuenta(nombre-suc,nro-cta,saldo)

Datos-cliente(nombre-cli,nro-cli,direccion-cli)

Prestamo(nombre-suc,nro-prestamo,importe)

Prestatario(nro-cli,nro-prestamo)

Cliente-cta(nro-cli,nro-cta)4

Subconsultas anidadas

Select * From Cliente-Cta Where nro-Cli NOT IN (Select nro-cli

From Prestatario)

Listado de clientes a los que se les otorgóprestamos

5

Subconsultas anidadas

Select * From Prestamo Where Importe >= All (Select importe

From Prestamo)

Listado de prestamos que tienen el mayor importe

6

Subconsultas anidadas

Select * From Cliente-Cta CCWhere Not Exists (Select 1

From Prestatario Where nro-cliente = CC.nro-cli)

Listado de clientes y sus cuentas para los clientes que no hayan solicitado prestamos.

Page 2: 07 Consultas SQL Cont

7

Cociente

Select Nro-cli, Nombre-cliFrom Datos-Cliente DCWhere Not Exists ( Select 1

From Sucursales SWhere Not Exists ( Select 1

From Cliente-Cuenta CC, Cuenta CWhere CC.nro-cuenta=C.nro-cuenta

and C.nombre-suc= S.nombre-sucand CC.nro-cli = DC.nro-cli)

)

Listado de Clientes que tienen cuentas en todas las sucursales

Funciones de Agregación

Permiten realizar operaciones sobre datos agregados (o agrupados)Operaciones tales como:

PromedioSumanMínimo y MáximoCuenta

Funciones de Agregación (cont.)

Utilizan los operadores Group By y Having

Select <atributos>From <relaciones>[Where <predicado>]Group By <col1>,…,<colN>Having <predicado>

Funciones de Agregación (cont.)

Ejemplos:1)Select nro-cli, count(*)From cliente-cuentaGroup By nro-cliente2)Select nro-cli, count(*)From cliente-cuentaGroup By nro-clienteHaving count(*)>5

1)Cantidad de Cuentas para cada cliente

2)Cantidad de cuentas para aquellos clientes que tengan más de 5 cuentas.

Funciones de Agregación (cont.)

Cantidad de Cuentas por cliente y promedio de saldos, para cuentas de tala, con saldo mayor a 1000$.

Select nro-cli, count(*), avg(c.saldo)From cliente-cuenta cc, cuenta cWhere cc.nro-cuenta=c.nro-cuenta and

c.nombre-suc=‘Tala’Group By nro-clienteHaving sum(c.saldo)>1000