Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Agenda
• Funciones de agrupamiento.
• Uso del GROUP BY.
• Teoría del uso de JOIN.
• SELECT con JOIN de tablas.
2
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
3
Uso del GROUP BY
• El uso de GROUP BY sirve hacer agrupaciones de datos dentro de una
instrucción SELECT.
Sintaxis:
4
Uso del GROUP BY
SELECT CED_CLIENTE, SUM(MONTO)
FROM ENC_FACTURA
GROUP BY CED_CLIENTE
6
Uso del HAVING
• 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.
8
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
9
Dudas
10
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.
11
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
12
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
13
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
14
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.
15
FULL JOIN
• 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
16
FULL JOIN
Ejemplo:
17
LEFT JOIN
• 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
18
LEFT JOIN
• Ejemplo:
19
JOIN con mas de una tabla
• Sintaxis:
• Sintaxis:
SELECT ISNULL(CAMPO, VALOR_X_DEFECTO)
FROM TABLA
21
Función ISNULL
Ejemplo:
22
Dudas
23
Ejercicio #1
• Realice un SELECT utilizando un JOIN entre las tablas DET_FACTURA y
ARTICULO, para mostrar el siguiente resultado:
24
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
25
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:
26
Resolución
27
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.
28
Resolución
29
¿Vamos bien?
30
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.
31
Resolución
32