La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Funciones de agrupamiento y JOIN de Tablas

Presentaciones similares


Presentación del tema: "Funciones de agrupamiento y JOIN de Tablas"— Transcripción de la presentación:

1 Funciones de agrupamiento y JOIN de Tablas
Bases de datos Funciones de agrupamiento y JOIN de Tablas

2 Agenda Funciones de agrupamiento. Uso del GROUP BY.
Teoría del uso de JOIN. SELECT con JOIN de tablas.

3 Funciones de Agrupación
MAX SELECT MAX(PRECIO) FROM ARTICULO MIN SELECT MIN(PRECIO) FROM ARTICULO SUM SELECT SUM(PRECIO) FROM ARTICULO COUNT SELECT COUNT(*) FROM ARTICULO AVG SELECT AVG(PRECIO) FROM ARTICULO

4 Uso del GROUP BY SELECT CAMPO1, CAMPO2, FUNCION(CAMPO3)
El uso de GROUP BY sirve hacer agrupaciones de datos dentro de una instrucción SELECT. Sintaxis: SELECT CAMPO1, CAMPO2, FUNCION(CAMPO3) FROM NOMBRETABLA GROUP BY CAMPO1, CAMPO2;

5 Uso del GROUP BY SELECT CED_CLIENTE, SUM(MONTO) FROM ENC_FACTURA
GROUP BY CED_CLIENTE Es importante no confundir el Group By del Order By, ya que uno es para agrupar el otro para ordenar. SELECT MARCA, COUNT(DESCRIPCION) FROM ARTICULO GROUP BY MARCA ORDER BY MARCA

6 Uso del GROUP BY Se pueden usar varios campos y varias funciones. SELECT MARCA, MIN(PRECIO) AS MAXIMO ,MAX(PRECIO) AS MINIMO FROM ARTICULO GROUP BY MARCA

7 Uso del HAVING SELECT MARCA, MIN(PRECIO) FROM ARTICULO GROUP BY MARCA
El HAVING es una instrucción similar al WHERE solo que nos sirve para condicionar datos dentro de una agrupación. A diferencia de WHERE en el HAVING se pueden usar funciones de agrupamiento. SELECT MARCA, MIN(PRECIO) FROM ARTICULO GROUP BY MARCA HAVING COUNT(MARCA)>1

8 Ejercicios Realizar un SELECT que muestre el código de articulo y una suma con la cantidad de unidades que se han vendido. Realizar un SELECT que muestre la marca y el promedio de precio, de los artículos donde la marca tenga mas de un producto en el catálogo.

9 Resolución 1. SELECT COD_ARTICULO,SUM(CANTIDAD) AS 'TOTAL VENDIDO' FROM DET_FACTURA GROUP BY COD_ARTICULO 2. SELECT MARCA, AVG(PRECIO) AS 'PROMEDIO PRECIO' FROM ARTICULO GROUP BY MARCA HAVING COUNT( MARCA ) > 1

10 Dudas

11 JOIN La sentencia JOIN en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En un JOIN lo ideal es siempre hacer la relaciones por las llaves foráneas entre las tablas.

12 INNER JOIN Con el INNER JOIN sólo se muestran los registros que coinciden entre dos tablas A y B. Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA INNER JOIN TablaB ON TablaA.campo = TablaB.campo

13 INNER JOIN Ejemplo: SELECT DET_FACTURA.NUM_FACTURA, DET_FACTURA.CANTIDAD, ARTICULO.DESCRIPCION, ARTICULO.MARCA FROM DET_FACTURA INNER JOIN ARTICULO ON DET_FACTURA.COD_ARTICULO=ARTICULO.CODIGO

14 ALIAS DE TABLAS El uso de alias en las tablas se usa para hacer mas sencillo el manejo de relaciones entre tablas. Y se realiza poniendo un nombre a la par de la tabla (de la misma manera que con los alias de los campos). Ejemplo: SELECT A.NUM_FACTURA, A.CANTIDAD, B.DESCRIPCION, B.MARCA FROM DET_FACTURA A INNER JOIN ARTICULO AS B ON A.COD_ARTICULO=B.CODIGO

15 INNER JOIN El caso del INNER JOIN es en el único donde ponemos omitir el tipo de JOIN que se está haciendo, en este caso omitiendo la palabra INNER. SELECT A.NUM_FACTURA, A.CANTIDAD, B.DESCRIPCION, B.MARCA FROM DET_FACTURA A INNER JOIN ARTICULO B ON A.COD_ARTICULO=B.CODIGO JOIN ARTICULO B

16 FULL JOIN Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA
Muestra el conjunto de todos los registros en las tablas A y B, con registros coincidentes en ambos lados cuando sea posible. Si no hay coincidencia, el lado que falta contendrá null. Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA FULL JOIN TablaB ON TablaA.campo = TablaB.campo

17 FULL JOIN SELECT A.NUM_FACTURA, A.CANTIDAD, B.DESCRIPCION, B.MARCA
Ejemplo: SELECT A.NUM_FACTURA, A.CANTIDAD, B.DESCRIPCION, B.MARCA FROM DET_FACTURA A FULL JOIN ARTICULO B ON A.COD_ARTICULO=B.CODIGO

18 LEFT JOIN Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA
Muestra el conjunto completo de registros de la tabla A, con los registros coincidentes (si están disponibles) en la tabla B. Si no hay coincidencia, el lado derecho contendrá null. Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA LEFT JOIN TablaB ON TablaA.campo = TablaB.campo

19 LEFT JOIN SELECT A.NOMBRE, A.APELLIDO1, A.APELLIDO2,B.NUMERO, B.MONTO
Ejemplo: SELECT A.NOMBRE, A.APELLIDO1, A.APELLIDO2,B.NUMERO, B.MONTO FROM CLIENTE A LEFT JOIN ENC_FACTURA B ON A.CEDULA = B.CED_CLIENTE

20 JOIN con mas de una tabla
Sintaxis: SELECT campo1, campo2, campo3 FROM TablaA [INNER, LEFT, FULL] JOIN TablaB ON TablaA.campo = TablaB.campo [INNER, LEFT, FULL] JOIN TablaC ON TablaA.campo = TablaC.campo

21 Función ISNULL SELECT ISNULL(CAMPO, VALOR_X_DEFECTO) FROM TABLA
La función ISNULL lo que nos permite es asignar un valor en especifico a un campo que almacena un valor NULO. Sintaxis: SELECT ISNULL(CAMPO, VALOR_X_DEFECTO) FROM TABLA

22 Función ISNULL Ejemplo:
SELECT A.CEDULA, A.NOMBRE, A.APELLIDO1, SUM(ISNULL(B.MONTO,0)) FROM CAJERO A LEFT JOIN ENC_FACTURA B ON A.CEDULA=B.CED_CAJERO GROUP BY A.CEDULA, A.NOMBRE, A.APELLIDO2

23 Dudas

24 Ejercicio #1 Realice un SELECT utilizando un JOIN entre las tablas DET_FACTURA y ARTICULO, para mostrar el siguiente resultado:

25 Resolución SELECT A.NUM_FACTURA, A.LINEA, A.CANTIDAD, A.PRECIO_UNITARIO, B.MARCA, B.DESCRIPCION FROM DET_FACTURA A INNER JOIN ARTICULO B ON A.COD_ARTICULO=B.CODIGO

26 Ejercicio #2 Realice un SELECT utilizando un JOIN entre las tablas ARTICULO y DET_FACTURA, para mostrar la marca, la descripción y la suma de artículos facturados, independientemente si se ha vendido o no:

27 Resolución SELECT A.MARCA, A.DESCRIPCION, SUM(B.CANTIDAD) FROM ARTICULO A LEFT JOIN DET_FACTURA B ON A.CODIGO=B.COD_ARTICULO GROUP BY A.MARCA, A.DESCRIPCION

28 Ejercicio #3 Realice un SELECT utilizando un JOIN para mostrar el nombre del cliente concatenado, y la cuenta de facturas que tiene asociadas. Pero solamente de los clientes que tengan al menos una factura y que el correo del cliente esté en NULO.

29 Resolución

30 ¿Vamos bien?

31 Ejercicio #4 Realice un SELECT utilizando JOIN’s para mostrar el nombre concatenado del cliente, las iniciales del cajero, el numero de factura, la fecha de la factura, el numero de línea del detalle de la factura, la marca del articulo, la descripción del artículo, la cantidad y el precio unitario con que se facturó. Y que el monto total de la factura esté entre 400,000 y 500,000.

32 Resolución


Descargar ppt "Funciones de agrupamiento y JOIN de Tablas"

Presentaciones similares


Anuncios Google