Sei sulla pagina 1di 66

SQL para anlisis de

Datos

Introduccin al SQL
Dionicio Velasquez T.
981679833 / RPM: # 981679833
dionicio.velasquez@dataminingperu.com
Agenda Dia 1

Introduccion al concepto de Base de Datos

Gestionar BD en SQL (Crear, guardar, restaurar y eliminar)

Gestionar Tablas en SQL (Crear, modificar, importar y exportar)

Ejercicios Prcticos

Consultas

www.dataminingperu.com
Introduccin
Base de Datos
Se define una base de datos como una
serie de datos organizados en tablas
relacionados entre s, los cuales son
recolectados y explotados por los sistemas
de informacin de una empresa o negocio
en particular.

Tablas
En una base de datos la
informacin se organiza en
tablas, que son filas y
columnas similares a las de
los libros contables o a las
de las hojas de clculo.
Introduccin
Manejadores de BD

Otros
mas.

Nos enfocaremos en curso al uso de Microsoft SQL Server, es el


mas usado, mas fcil de usar y la mayoria de empresas lo tienen.
Introduccin
Iniciando con Microsoft SQL Server 2008

Database Engine
Gestin de BD en SQL
Crear una Base de Datos

1.Por medio del Administrador (Modo Visual)

1.Por sintaxis SQL


CREATE DATABASE BDCompras
GO
Gestin de BD en SQL
Borrar una BD

1.- Por medio del Administrador (Modo Visual)

2.- Por sintaxis SQL

DROP DATABASE BDCompras


Gestin de BD en SQL
Backup BD
Gestin de BD en SQL
Restaurar una BD
Gestin de Tablas en SQL
Crear una tabla
1.- Por medio del Administrador (Modo Visual)

2.- Por sintaxis SQL

USE BDCompras --- DEFINIMOS EN QUE BD


CREATE TABLE CLIENTES --- NOMBRE TABLA
(COD CHAR(5),NOM VARCHAR(80),PAIS VARCHAR(30)) --- CAMPOS
Gestin de Tablas en SQL
Borrar una tabla

1.- Por medio del Administrador (Modo Visual)

2.- Por sintaxis SQL


USE BDCompras --- DEFINIMOS EN QUE BD
DROP TABLE CLIENTES --- NOMBRE TABLA
Gestin de Tablas en SQL
Modificar una tabla

1.- Por medio del Administrador (Modo Visual)

2.- Por sintaxis SQL


USE BDCompras --- DEFINIMOS EN QUE BD
ALTER TABLE CLIENTES --- NOMBRE TABLA
ADD DIRECC VARCHAR(30) AGREGAR UNA CAMPO
DROP COLUMN PAIS QUITAR UNA CAMPO
Gestin de Tablas en SQL
Ingreso de informacin

1.- Por medio del Administrador (Modo Visual)

2.- Por sintaxis SQL

USE BDCompras --- DEFINIMOS EN QUE BD


ALTER TABLE CLIENTES --- NOMBRE TABLA
ADD DIRECC VARCHAR(30) AGREGAR UNA CAMPO
DROP COLUMN PAIS QUITAR UNA CAMPO
Ejercicios Prcticos

1. Importar los datos del archivo texto: ventas.txt , en la BD


BdCompras, con el nombre de ventastxt.
2. Importar los datos del archivo Excel : ventas.xls, en la BD
BdCompras, con el nombre de ventasxls. en la BD BdCompras, con
el nombre de ventasxls.
3. Importar los datos del archivo en Access : clientes.mbd, en la BD
BdCompras, con el nombre de ventasmdb.
4. Exportar la tabla de clientes de la BDCompras, aun archivo en Excel
con el nombre clientesxls.
5. Exportar la tabla de clientes de la BDCompras, aun archivo en Excel
con el nombre clientesxls.
6. Exportar la tabla de clientes de la BDCompras, aun archivo en texto
con el nombre clientestxt.
Agenda Clase 2 Y 3

Introduccin al Lenguaje Transact SQL.

Comando, Clausulas, operadores y agregacin en SQL Transact.

Manipulacin de tablas y multitablas

Uso de Funciones

Ejemplos prcticos.

www.dataminingperu.com
Transact SQL

El lenguaje que nos permitir conversar con el SQL, son las instrucciones Transact
SQL. Esta conversacin se har mediante la interface de usuario.

16
Transact SQL

El lenguaje SQL contiene instrucciones que se ajustan alas dos principales categoras
de programacin: DDL y DML.

DDL: Se utiliza para definir y administrar objetos de la BD, tales como Bases, tablas, y
vistas. Usualmente las mas usadas son CREATE TABLE, ALTER TABLE, DROP TABLE. Se
utilizan para crear tablas, modificar (agregar o borrar columnas, modificar, etc), y
eliminar tablas respectivamente.
CREATE TABLE CLIENTES (COD CHAR(5),NOM VARCHAR(80),PAIS VARCHAR(30))
ALTER TABLE CLIENTES ADD EMAIL VARCHAR(30)

DML: Se utiliza para manipular informacin de las BD, para ello utilizaremos
instrucciones como INSERT, SELECT, UPADTE, CASE, DATE, UPDATE, DELETE y otros.
Estas instrucciones nos permiten seleccionar filas, filtrar, insertar nuevas filas,
modificar las filas existentes y eliminar datos no deseados.

DELETE FROM CLIENTES


WHERE PAIS=PERU

17
COMANDOS SQL

18
CLAUSULAS SQL

Las clausulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular:

19
Operadores SQL

Operadores Lgicos

Operadores de Comparacin

20
Funciones de Agregado SQL

Las funciones de agregado se usan dentro de una Clausula SELECT en grupos de


registros para devolver un nico valor que se aplica a un grupo de registros.

21
Base de Datos: BD_Practicas
TABLA: CLIENTE PERFIL TABLA: CLIENTE PRODUCTOS
CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION
CODIGO va rcha r Codi go del Cl i ente CODIGO va rcha r Codi go Cl i ente
MES cha r Mes Proces o CTA_AHORRO numeri c Fl g Cuenta Ahorro
AGENCIA va rcha r Codi go Agenci a SALDO_AHORRO numeri c Sa l do Cta Ahorro
SALDO_ACTIVO numeri c Sa l do Medi o Ati vos CTA_CORRIENTE numeri c Fl g Cta Corri ente
SALDO_PASIVO numeri c Sa l do Medi o Pa s i vos SALDO_CORRIENTE numeri c Sa l do Cta Corri ente
RENTABILIDAD numeri c Rentabi l i da d Mes CTA_FONDO numeri c Fl g Cta Fondo Mutuo
FH_NACIMIENTO va rcha r Fecha Na ci mi ento SALDO_FONDO numeri c Sa l do Fondo Mutuo
ECIVIL va rcha r Es tado Ci vi l CTA_PLAZO numeri c Fl g cta Pl a zo
SEXO va rcha r Sexo SALDO_PLAZO numeri c Sa l do Cta Pl a zo
FH_ALTA va rcha r Fecha a l ta Cl i ente CTA_CTS numeri c Fl g Cta CTS
UBIGEO va rcha r Ubi geo de res i denci a SALDO_CTS numeri c Sa l do Cta CTS
TIENE_TELEFONO cha r Tenenci a Tel efono CTA_PRESTAMO numeri c Fl g Pres tamo Cons umo
TIENE_CORREO cha r Tenenci a Correo SALDO_PRESTAMO numeri c Sa l do Pres tamo cons umo
USO_AGENCIA cha r Us o de Agenci a CTA_HIPOTECARIO numeri c Fl g Pres tamo hi poteca ri o
USO_CAJERO cha r Us o de Ca jero SALDO_HIPOTECARIO numeri c Sa l do Pres tamo hi poteca ri o
USO_INTERNET cha r Us o Internet CTA_TARJETA numeri c Fl g Ta rjeta Credi to
CLASIFICADO_SBS cha r Fl g Cl a s i fi ca ci on SBS SALDO_TC numeri c Sa l do Ta rjeta Crei to
INGRESO numeri c Ingres o Ca l cul a do SALDO_ACTIVO numeri c Sa l do Ctas Activos
SEGMENTO va rcha r Segmento Cl i ente SALDO_PASIVO numeri c Sa l do Ctas Pa s i vos
MARGEN_ACUMULADO numeri c Ma rgen Ordi na ri o
CTA_SEGURO numeri c Fl g Tenenci a Seguro

TABLA: CLIENTE PRESTAMO TABLA: SEGMENTO


CAMPO TIPO DESCRIPCION CAMPO TIPO DESCRIPCION
CUENTA i nt Codi go Contra to SEGMENTO i nt Codi go Segmento
CODIGO va rcha r Codi go Cl i ente DESC_SEGMENTO va rcha r Des cri pci on Segmento
DESEMBOLSO numeri c Monto Ini ci a l des embol s o GRUPO numeri c Grupo Segmento
SALDO_REAL numeri c Sa l do Actua l Deuda
MONTO_CUOTA numeri c Monto de Cuota
NUMERO_CUOTAS numeri c Total Numero de cuotas TABLA: UBIGEO
CUOTAS_PAGADAS numeri c Cuotas pa ga da s CAMPO TIPO DESCRIPCION
CUOTAS_PENDIENTESn umeri c Cuotas Pendi entes UBIGEO nva rcha r Codi go Ubi geo
TASA numeri c Ta s a del pres tamo DISTRITO nva rcha r Di s tri to
FECHA_ALTA va rcha r Fecha de Al ta contra to PROVINCIA nva rcha r Provi nci a
FECHA_VENCIMIENTOva rcha r Fecha Venci mi ento DEPARTAMENTO nva rcha r Depa rtamento
PRODUCTO va rcha r Codi go Producto COD_POSTAL nva rcha r Codi go Pos tal
AREA va rcha r Ambi to
TABLA: UBIGEO
CAMPO TIPO DESCRIPCION
AGENCIA nva rcha r Codi go a genci a 22
NOMBRE nva rcha r Nombre Agenci a
Descripcin del orden de ejecucion

SELECT <atributos>: permite hacer una proyeccin de las tablas, es decir,


seleccionar los campos que deseamos recuperar de la base de datos, separados por
comas. Si se especifica el smbolo *, se obtendrn todos los campos de la tabla.

FROM <tablas>: permite especificar la tabla de la cual se desean obtener los datos.
Si se especifica ms de una tabla, stas irn separadas por comas.

WHERE <condicin>: permite establecer una condicin de recuperacin de las filas


de la/s tabla/s. Slo se obtendrn aquellas Registros que verifiquen dicha condicin,
que ser opcional. En el caso de que se omita esta parte, se recuperarn todas las
filas.

GROUP BY <atributos>: permite establecer una seleccin de campos cuando se


utilizan funciones escalares o de conteo (ya se ver ms adelante lo que significa.

HAVING <condicin>: establece una condicin para los atributos obtenidos como
resultado de la aplicacin de funciones escalares.

ORDER BY <atributos>: permite obtener el resultado de la consulta ordenado por


los atributos especificados.

23
Orden de Ejecucin SQL

Dada una sentencia en SQL de seleccin que incluye todas las posibles clausulas, el
orden de ejecucin es:

Clausula SELECT Reporte de agencias cuyo suma de saldo pasivo


de los clientes superen los S/. 100M soles, no
considerar los clientes del segmento corporativo; el
Clausula FROM reporte tiene que ser por cdigo agencia
mostrando el numero de clientes y el monto pasivo.

Clausula WHERE

SELECT
Clausula GROUP BY AGENCIA, COUNT(CODIGO), SUM(SALDO_PASIVO)
FROM CLIENTE_PERFIL
WHERE segmento NOT IN ('211011,211022')
Clausula HAVING GROUP BY AGENCIA
HAVING SUM(SALDO_PASIVO)>100000
ORDER BY AGENCIA ASC
Clausula ORDER BY

24
FUNCIONES ESCALARES PARA SELECT

SUM : Realiza una suma de toda una columna para todas las filas accedidas
mediante una consulta SQL.
SELECT SUM (INGRESO) FROM CLIENTES_PERFIL

COUNT: Cuenta todas las filas de las tablas accedidas mediante una consulta
SQL.
SELECT COUNT(CODIGO) FROM CLIENTES_PERFIL

AVG : Realiza una media aritmtica de los atributos para todas las filas
accedidas mediante la consulta SQL.
SELECT AVG(INGRESO) FROM CLIENTE_PERFIL

MAX :Obtiene el mximo valor del atributo especificado, de entre todas las
filas seleccionadas mediante la sentencia SQL.
SELECT MAX(INGRESO) FROM CLIENTES_PERFIL

MIN : Obtiene el minimo valor del atributo especificado, de entre todas las filas
seleccionadas mediante la sentencia SQL.
SELECT MIN(INGRESO) FROM CLIENTES_PERFIL
25
Ejercicios prcticos

1. Mostrar solo los clientes del banco del sexo masculino.


2. Cuantos clientes posen telfono.
3. Cuantos clientes poseen telfono y email.
4. Clientes con saldo pasivo superior a 10M soles.
5. Clientes con rentabilidad mayor igual a 250 soles mes.
6. Clientes sin ingreso especificado o valor 0.
7. Clientes mayores de 35 aos.
8. Mostrar a los clientes clasificados en la SBS.
9. Clientes que hayan usado banca por internet o cajero.
10. Clientes que solo utilizaron el canal de agencia
11. Clientes que se dieron de alta en el 2010.
12. El numero de clientes por oficina, mostrar la oficina con mas
clientes.
26
Lenguaje de manipulacin

UPDATE: El objetivo de la sentencia UPDATE es actualizar los valores de


una o varias filas de la tabla sin necesidad de insertarla o borrarla.
UPDATE CLIENTES_PERFIL_NUEVOS
SET ECIVIL='S'
WHERE ECIVIL=''

Esta sentencia actualizara el campo Estado Civil de la tabla Clientes Perfil


nuevos, con el dato S en los campos vacios.

DELETE: El objetivo de esta sentencia es borrar filas de la tabla.

DELETE FROM AGENCIAS


WHERE AGENCIA='0980'

Esta sentencia eliminara la agencia con cdigo 0980 de la tabla Agencias.

27
Lenguaje de manipulacin

INSERT: Nos permite aadir datos a una tabla especifica, para este caso
especificaremos los datos de todos los campos de dicha tabla.

INSERT AGENCIAS VALUES ('0980','AGENCIA 292')

Esta sentencia agregara la nueva oficina 0980 de nombre Agencia 292 en la


tabla AGENCIAS.

28
FUNCIONES SQL- Funciones de Fecha

DATEADD : Devuelve un valor datetime nuevo que se basa en la suma de


un intervalo a la fecha especificada.
Sintaxis
DATEADD ( partedeFecha , numero, Fecha )

Mostrar la fecha de pago de los


pedidos dentro de los 15 das
posteriores a la fecha de fecha de
pedido

SELECT DATEADD(day, 15, orderdate)


AS FechaPago
FROM pedidos

29
FUNCIONES SQL- Funciones de Fecha

DATEDIFF : Devuelve el nmero de dias,meses o aos que han transcurrido


entre dos fechas especificadas.
Sintaxis
DATEDIFF ( parteFecha , Fechainicial , fechafinal )

La funcin GetDate() devuelve la


Fecha y la hora Actual

Mostrar la edad de los empleados


a la fecha.

SELECT NOMBRES,APELLIDOS,
DATEDIFF(YEAR,FECHA_NACIMIENTO,GETDA
TE()) AS EDAD
FROM BD_PRACTICAS.DBO.EMPLEADOS

30
FUNCIONES SQL- Funciones de Fecha

DATENAME : Devuelve una cadena de caracteres que representa la parte de


la fecha especificada de la fecha especificada.
Sintaxis
DATENAME (parteFecha , fecha )

Mostrar en un campo el mes de pedido,

SELECT *, DATENAME (MONTH, ORDERDATE) AS MESPEDIDO


FROM PEDIDOS

Mostrar los meses y el numero de pedidos, identificando los meses con mas pedidos.

SELECT DATENAME(MONTH, ORDERDATE), COUNT(*)


FROM PEDIDOS
GROUP BY DATENAME(MONTH, ORDERDATE)
ORDER BY COUNT(*) DESC

31
FUNCIONES SQL- Funciones de Fecha
DAY: Devuelve un entero que representa la parte del da de la fecha
especificada.
Sintaxis: DAY ( fecha )
MONTH : Devuelve un entero que representa el mes de una fecha
especificada.
Sintaxis: MONTH ( fecha )

YEAR : Devuelve un entero que representa la parte de ao de la fecha


especificada.
Sintaxis: YEAR ( fecha )

Mostrar en numeros el, ao, mes, dia de la fecha de pedido de la tabla pedidos.

SELECT ORDERID, ORDERDATE, YEAR(ORDERDATE)'AO', MONTH(ORDERDATE)'MES',


DAY(ORDERDATE)'DIAS'
FROM PEDIDOS

32
FUNCIONES SQL- Funciones Matemticas

ROUND: Devuelve una expresin numrica, redondeada a la longitud o


precisin especificada.
Sintaxis: ROUND ( numero , longitud )
CEILING : Devuelve un numero entero ms pequeo mayor o igual que la
expresin numrica dada.
Sintaxis: CEILING ( expressionNumerica )

FLOOR : Devuelve el numero entero ms grande menor o igual que la


expresin numrica dada.
Sintaxis: FLOOR ( expresionNumerica )
Veremos los diferentes tipos de redondeo

SELECT FLOOR(123.65), FLOOR(-123.45), FLOOR($123.45) --- Redondeo hacia arriba

SELECT CEILING($123.45), CEILING($-123.45), CEILING($0.75) Redondeo hacia abajo

SELECT ROUND(748.58, -2) ----- Redondeo con parametros


SELECT ROUND(748.58, -1)
SELECT ROUND(748.58, +1)
33
SELECT ROUND(748.58, +2)
FUNCIONES SQL- Funciones Matemticas

POWER : Devuelve el valor de la expresin indicada elevada a la potencia


especificada.
POWER ( expression numerica, EXPONENTE )
SQRT : Devuelve la raz cuadrada de la expresin especificada.
Sintaxis: SQRT ( expressionNumerica )
EXP : Devuelve el valor exponencial de la expresin float especificada.
EXP ( float_expression ))
LOG: Devuelve el logaritmo natural de la expresin float especificada.
LOG ( float_expression )

Ejemplos
SELECT POWER(4,2)
SELECT SQRT(81)
SELECT EXP( LOG(20)), LOG( EXP(20))

Para ver mas funciones: (Trigonometricas, radianes, pi, etc)


http://msdn.microsoft.com/es-es/library/ms179857.aspx
34
FUNCIONES SQL- Funciones texto

UPPER : Convierte de minsculas a maysculas.


Sintaxis: UPPER (expressionTexto)
LOWER : Convierte de maysculas a minsculas .
Sintaxis: LOWER ( expressionTexto )

LEFT : Extrae caracteres empezando por el lado izquierdo de la cadena


especificada como expresion de texto.
LEFT ( expressionTexto,numeroCaracteres )

RIGHT : Extrae caracteres empezando por el lado derecho de la cadena de


caracteres
RIGHT ( expressionTexto , numeroCaracteres)
Ejemplos

SELECT NOMBRES,UPPER(NOMBRES),LOWER(NOMBRES),
CARGO, RIGHT(CARGO,7), LEFT(CARGO,7)
FROM EMPLEADOS

35
FUNCIONES SQL- Funciones texto

LEN : Devuelve el nmero de caracteres de la expresin de cadena dada,


excluidos los espacios finales en blanco.
Sintaxis: LEN ( expressionTexto )
SUBSTRING : Devuelve una parte de una expresin de caracteres
Sintaxis: SUBSTRING ( expressionTexto , Posicion inicial , numeroCaracteres)
REPLACE : Reemplaza por una tercera expresin todas las apariciones de la
segunda expresin de cadena proporcionada en la primera expresin de cadena.
REPLACE ( 'expressionTexto1' , 'expressionTexto2' , expressionTexto3' )
REPLICATE Repite una expresin de caracteres un nmero especificado de
veces.
REPLICATE ( expressionTexto , numeroVeces )
Ejemplos

SELECT NOMBRES, LEN(NOMBRES), SUBSTRING(NOMBRES,1,4),REPLICATE(NombreS, 2),


REPLACE(NOMBREs,'en','UNI')
FROM Empleados

36
Funciones de Conversin

CAST Y CONVERT
Convierten una expresin de un tipo de datos en otro. CAST y CONVERT proporcionan
funciones similares.

SELECT 'EL PRECIO ES ' + CAST(PRECIOUNIDAD AS VARCHAR(12))


FROM PRODUCTOS
WHERE PRECIOUNIDAD > 10.00

El siguiente es el conjunto de resultados:


---------------------------
The precio es 19.99
The precio es 11.95

Este ejemplo convierte una columna de tipo int (la columna idPedido) en una columna de tipo char(20)
para poder utilizarla en una clusula LIKE.

Mostrar los pedidos cuyo el mes de la fechaPedido sea igual Agosto y el numero de pedido empieza
en los nmeros 12

SELECT IDPEDIDO,FECHAPEDIDO
FROM PEDIDOS
WHERE CAST(IDPEDIDO AS CHAR(20)) LIKE '12%'
AND MONTH(FECHAPEDIDO) = 8
GO

SELECT CONVERT(VARCHAR(8),GETDATE(),3)

37
SENTENCIAS CONDICIONALES

Las sentencias condicionales son aquellas que permiten discriminar entre diversas
sentencias, segn se cumpla el valor de una expresin lgica. Existen dos tipos de
sentencias condicionales.
.
Simple CASE expression:

CASE WHEN when_expression


THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END

Creando la varible Rango de Edad:

SELECT *,
CASE WHEN EDAD < 25 THEN 'HASTA 25 AOS
WHEN EDAD BETWEEN 25 AND 35 THEN DE 25 A 35 AOS
WHEN EDAD BETWEEN 35 AND 45 THEN DE 35 A 45 AOS
WHEN EDAD BETWEEN 45 AND 55 THEN DE 45 A 55 AOS
ELSE 'MAS DE 55 AOS' END AS RANGO_EDAD
FROM dbo.CLIENTE_PERFIL

38
Consultas multi-tablas

39
Consultas multitablas

Unin de tablas
Esta operacin se usa cuando tenemos tablas con la misma
estructura y queremos tener una tabla con las filas de la
primera y de la segunda

SELECT *FROM CLIENTE_PERFIL


UNION
SELECT * FROM CLIENTES_PERFIL_NUEVOS

Composicin de tablas
Composicin consiste en concatenar columnas de una
tabla con otra. Esto es de mucha ayuda si necesitamos
visualizar informacin que se encuentra en dos tablas.

SELECT *
FROM CLIENTE_PERFIL V
INNER JOIN
CLIENTE_PRODUCTO P
ON V.CODIGO=P.CODIGO

SELECT *
FROM CLIENTE_PERFIL, CLIENTE_PRODUCTO
WHERE
CLIENTE_PERFIL.CODIGO=CLIENTE_PRODUCTO.CODIGO

40
Consultas multi-tablas

INEER JOIN
Utilizado para emparejar tablas segn alguna condicin establecida, el cual mostrara solo
los registros que satisfacen esta condicin.

SELECT *
FROM CLIENTE_PERFIL V INNER JOIN CLIENTE_RESTAMOS P
ON V.CODIGO=P.CODIGO
Tenemos 200M clientes en la tabla Perfiles pero cruzando con la prestamos solo 17M
aproximadamente tienen unos tipo de prstamos.

LEFT JOIN Y RIGHT JOIN


Son tipos de composicin de tablas que evita obviar registros perdidos por una condicin; remplazando
estos valores con NULL.

SELECT V.CODIGO, V.AGENCIA,P.CODIGO, P.PRODUCTO, P.DESEMBOLSO


FROM CLIENTE_PERFIL V LEFT JOIN CLIENTE_PRESTAMOS P
ON V.CODIGO=P.CODIGO

Mantendr el total de registros de Cliente Perfil (IZQUIERDA)

SELECT V.CODIGO, V.AGENCIA,P.CODIGO, P.PRODUCTO, P.DESEMBOLSO


FROM CLIENTE_PERFIL V RIGHT JOIN CLIENTE_PRESTAMOS P
ON V.CODIGO=P.CODIGO

Mantendr el total de registros de Cliente Prstamo (DERECHA)


41
Consultas multi-tablas

SUBQUERY
El uso de estos es comn, es utilizar una consulta dentro de otra en muchos casos como
filtro.

SELECT * FROM CLIENTE_PRESTAMOS


WHERE CODIGO IN ( SELECT CODIGO FROM CLIENTE_PERFIL WHERE SEGMENTO IN
('288011'))

Reporte de los clientes VIP que cuentan con un prestamo

42
Ejercicios prcticos 1

1. Hacer una tabla que nos muestre los clientes con solo prstamo
hipotecario, esta tabla tiene que tener el monto de prstamo,
edad, segmento, agencia, saldo Pasivo, saldo Activo, sexo.
2. Dar la distribucin de clientes y monto desembolso x rango de
edad (0-25, 25-35, 35-45, 45-55, 55+ aos)
3. Hacer una tabla que nos muestre a todos los clientes del banco,
por segmento, edad, ingreso y la tenencia de los productos
pasivos ( ahorro, plazo, FM) y activos(TC, prstamo).
4. Se necesita un reporte de clientes rango de ingreso (0-2.5M,
2.5M-3.5M, 3.5M-7M, 7M +) y tenencia de tarjeta, que nos
muestre el numero de clientes y saldo.

43
Ejercicios prcticos 2

Distribucin de clientes con cuentas


Distribucin altas clientes empresas
de ahorro x departamento
DEPARTAMENTO CLIENTES TOTAL CUENTAS SALDO TOTAL AHORRO
AMAZONAS 118 137 131,919.00
ANCASH 3,923 4,605 6,264,153.00
APURIMAC 71 71 35,564.00
AREQUIPA 7,240 8,572 22,057,562.00
AYACUCHO 655 771 1,257,886.00
CAJAMARCA 2,374 2,844 7,013,494.00
CALLAO 12,181 15,753 24,123,123.00
CUSCO 4,844 5,918 11,166,901.00
HUANCAVELICA 180 211 168,336.00
HUANUCO 2,118 2,639 5,371,905.00
ICA 5,667 7,249 5,700,610.00
JUNIN 5,484 7,626 4,932,062.00
LA LIBERTAD 9,702 11,625 17,688,275.00
LAMBAYEQUE 6,182 7,123 6,149,755.00
LIMA 116,417 150,816 399,310,838.00
LORETO 4,027 4,750 4,621,817.00
Listado de clientes MADRE DE DIOS 83 93 45,489.00
MOQUEGUA 500 590 606,890.00
PASCO 1,813 2,923 2,966,673.00
PRESTAMO PRESTAMO PIURA 7,052 8,108 33,230,649.00
CODIGO SEXO PERSONAL VEHICULAR PUNO 1,714 4,146 5,723,135.00
269211263053 M 4000 0 SAN MARTIN 2,271 2,734 3,053,546.00
069202086686 M 3620 0 TACNA 1,716 4,262 13,084,349.00
TUMBES 938 1,098 724,004.00
469225432982 M 5600 0
UCAYALI 2,516 3,036 2,734,193.00
069200096046 F 0 43523
769225700840 M 2750 0
369133383373 M 8000 0
169214183213 F 8000 0
369221316656 M 64485 0 44
869088841611 M 13600 0
Agenda Clase 4

Conexin Excel SQL.

Reportes Dinmicos en Excel.

Grficos Dinmicos en Excel.

Anlisis de campaas

Desarrollos prcticos.

www.dataminingperu.com
Gestin de Campaas

AREA Procesos y querys


INTELIGENCIA
COMERCIAL COMERCIAL

soporte Se perfila el TARGET

Edad >25 <55


Segmento : Alto Valor
Pago haber
ACCIONES COMERCIALES Ingreso >3500
Lima y Callao
Captacin Clientes PROVEEDORES
Fidelizacin de Clientes
Cross Selling
Up Selling
Retencin
TARGET Grupo
Control

Proceso Feedback

Contacto efectivo
Identificacin mejor
canal.
Mejorar la oferta
comercial
46
Administracin de campaas a travs del ciclo de vida del
cliente con Modelos Predictivos

Ciclo de vida del Cliente


Valor

Modelos Mejor
Cross/Up Sell Modelos Mejor
Cross/Up Sell
Modelos
Cross/Up Sell
Ganancia Valor del cliente
Modelos de
Cross/up sell Modelos
Alarma Fuga
Modelos de De Clientes
Adquisicin Modelos
ms eficiente
de Retencin

Perdida Administracin de Campaas Tiempo

Adquisicin Desarrollo Fidelizacin \ Recuperacin

Retencin

47
Ejemplo Practico

Teniendo en con las tablas de la base BD_Practicas; hacer el perfilamiento de


los clientes de la entidad Financiera.

Desarrollar una tabla que consolide la informacin relevante de los


clientes.

Esta tabla deber de considerar variables de anlisis (dimensiones) y


medidas ( valores de resumen ).

Agrupar variables con gran numero de detalles en rangos de anlisis


(edad, ingresos, saldos, etc).

Hacer la conexin respectiva de esta tabla SQL con el Excel para el


respectivo anlisis de esta informacin consolidndola en cuadros y
grficos.

48
Elaborar tabln de informacin

Dimensiones Medidas
Rango Edad x # Clientes x
Sexo x Saldo Activo x
Estado civil Saldo Pasivo x
Ubigeo (Departamento, provincia y distrito)x Rentabilidad x
Rango ingreso Masa Salarial
Agencia Saldo Productos (AHO, PLZ, FM, CTS,
Transacciones (ventanilla, cajero, internet, PC,PV,PH)
telfono) Vinculacin
Reportado SBS Saldo Medio Cliente
Rango de Rentabilidad Edad Media
Rango Pasivo Rentabilidad Media
Rango Activo Vinculacin Media
Tenencia de productos (AHO, PLZ, FM, CTS, Ect.
PV, PC, PH)
Segmento
Es PH

Generar el proceso SQL que construya dicha tabla.

49
Conexin a Excel

Conexin de BD SQL en Excel


1. Botn Insertar
2. Tabla Dinmica
3. Utilice una fuente de datos externa.
4. Examinar y buscar mas
5. Nuevo origen
6. Microsoft SQL Server
7. Especificar nombre del servidor

Nombre
servidor

50
Conexin a Excel

Conexin de BD SQL en Excel


7. Colocar nombre del servidor (o encontrara en la
cabecera de administrador de la BD en SQL.
8. Seleccionaremos el nombre de la BD
9. Ubicaremos nuestra tabla para conexin
10. Colocaremos nombre a la conexin
11. finalizar

51
Desarrollo de reportes Dinamicos

Tabla dinmica de explotacin de informacin

rea variables

rea reporte

Medidas

52
Grficos Dinmicos

53
Grficos de Anlisis mas usados

80
76
Millones

70 100%
70 70
69 69 14%
61
59 90%
60 63 58
56
53 52
49 52 80%
8%
49 48 48 48 47
50 6%
50 45
70%
41 47 40 64%
40 38 37 38 38
42
41 60%

36 31%
30 26 29
33 34
31 32 24 50%
24

20 40%

10 30% 10%
32% 4%
20%
-
Dic-09 Ene-10 Feb-10 Mar-10 Abr-10 May-10 Jun-10 Jul-10 Ago-10 Sep-10 Oct-10 Nov-10 Dic-10
13%
10%

Plazo Ahorro-Vista Fondos Mutuos 9% 7%


0% 1%
25,000
% CLIENTES % MASA SALARIAL
20,000 1 - HASTA 699 SOLES 2 - DE 700 A 1,199 SOLES 3 - DE 1,200 A 2,499 SOLES
23,647 21,564 4 - DE 2,500 A 3,499 SOLES 5 - DE 3,500 A 6,999 SOLES 6 - DE 7,000 A MAS SOLES

15,000

10,000 12,501
10,573
5,000
6,113 5,624
-
PATIO ALTO PATIO MEDIO PATIO BAJO

Promedio Saldo Activo Cliente Promedio Saldo Pasivo Cliente


54
Grficos de usados

300 25%
259 OTROS
250 234 20%
20%
200 20%
200 189 PREMIUM
18% 170 18%
166 15% 38%
16%
150 AVP
12% 10% 11%
100
7% 5%
50 37 31 36 34 30
14
0 0% AVA
Ene-10 Feb-10 Mar-10 Abr-10 May-10 Jun-10 31%

CAIDA PLAZO INCREMENTO FONDO % RATIO

PROVINCIA
29%
LIMA
71%

55
Agenda Clase 5

Conexin SQL - SPSS.

Anlisis RFM SQL - SPSS.

Conexin SQL - R.

Anlisis Estadstico en R.

www.dataminingperu.com
Conexin SPSS

57
Conexin SPSS

58
ANALISIS RFM

Qu es RFM?
El mejor predictor del futuro es el comportamiento pasado.
Recency tiempo desde ltima compra
Frecuency tiempo entre compras
Monetary Value monto de compras
Requiere el conocimiento del comportamiento histrico de compra de
los clientes.
Funciona en cualquier industria.

Porqu el anlisis RFM?


Es la base para cualquier modelo de prediccin de comportamiento de
clientes, porque se miden 3 dimensiones del comportamiento.
Balancea las tres dimensiones caractersticas ms potentes.
Es de simple desarrollo y de fcil comprensin.
Permite aumentar la performance de las campaas y el ROI de
campaas o promociones de marketing directo, al apuntar a clientes
especficos.

www.dataminingperu.com
Proceso construccin de segmentos RFM

R
F
5
Mas
reciente Mas
5
M
compras

5
Mayor
4 Monto
4
4
3
Base 3
Datos 3
Marketing 2 2 2
Mas
antiguo 1 Menos
compras 1 Menor
Monto 1
Primer Segundo Tercer
ordenamiento ordenamiento ordenamiento
por ultimo da por frecuencia por monto de
de compra de compra compra

www.dataminingperu.com
Desarrollo de RFM con SPSS

Utilizar el mismo procedimiento de conexin SQL-SPSS, conectar ala BD


ANALISIS y a la tabla RFM.

www.dataminingperu.com
Desarrollo de RFM con SPSS

www.dataminingperu.com
Desarrollo de RFM con SPSS

www.dataminingperu.com
Conexin con R

Abrir el archivo : Analisis SQL - R.R

www.dataminingperu.com
Examen (indispensable para la certificacin)

1. Restaurar la base Examen (3 puntos). En esta base tenemos a los


clientes que solicitaron un prstamo (Consumo, vehicular, hipotecario,
etc).

2. Realizar los procesos con Sintaxis SQL para generar la tabla de


anlisis que nos permita hacer el perfilamiento del Cliente que tengan
prestamos usar tambin la informacin de
bd_practicas.dbo.cliente_perfil. (8puntos) *

3. Realizar la conexin de esta tabla de anlisis con el Excel (3 puntos)

4. Elaborar cuadros y grficos de dicho perfilamiento. (6 puntos)

* Determinar las variables de anlisis (dimensiones) y las medidas, segn su criterio.

65
66

Potrebbero piacerti anche