00:00:00
cuando uno empieza a trabajar como Data
00:00:01
scientist piensa que va a estar todo el
00:00:03
tiempo entrenando modelos y creando
00:00:04
algoritmos pero lamentablemente Esa no
00:00:06
es la realidad rápidamente te vas a dar
00:00:08
cuenta de que vas a pasar gran parte de
00:00:10
tu tiempo haciendo análisis addock para
00:00:12
tu jefe para los product managers para
00:00:13
el de publicidad Así que vamos a acabar
00:00:15
con eso y vamos a intentar devolverte tu
00:00:17
tiempo para que puedas centrarte en
00:00:19
cosas realmente rompedoras por eso en
00:00:21
este vídeo vamos a crear un prototipo de
00:00:22
una aplicación de Inteligencia
00:00:23
artificial que permite a los usuarios de
00:00:25
negocio hacer sus propios análisis sin
00:00:27
depender de ti y lo haremos conectando
00:00:28
directamente la Api de chat gpt a la
00:00:30
base de datos de la empresa y creando
00:00:32
una interfaz de streamlit para que la
00:00:34
puede utilizar directamente el usuario
00:00:35
de negocio
00:00:35
[Música]
00:00:37
Bueno pues antes de pasar al código
00:00:39
vamos a ver la arquitectura de cómo
00:00:41
funciona este sistema como habíamos
00:00:43
dicho vamos a crear una app que va a
00:00:44
tener una interfaz muy sencilla al
00:00:46
estilo de chat donde únicamente va a
00:00:48
haber una cajita donde el usuario va a
00:00:49
introducir el lenguaje natural que
00:00:51
análisis es el que quiere realizar esta
00:00:53
interfaz la vamos a hacer en Stream lead
00:00:55
y va a conectar directamente con el
00:00:57
backend que va a ser un código de python
00:00:59
y que lo que va a hacer es básicamente
00:01:01
la pregunta del usuario y
00:01:03
pasársela a la Api de chat gpt de Open
00:01:07
ahí conectar con los servidores de Open
00:01:08
ahí pasándole un pronto muy concreto que
00:01:11
vas a ver cuál es el que vamos a
00:01:12
utilizar y esto lo que va a devolver es
00:01:14
el código de sql necesario para conectar
00:01:17
con una base de datos y hacer el
00:01:19
análisis que ha sido el que ha pedido el
00:01:20
usuario en este caso vamos a utilizar
00:01:22
una base de datos relacional Aunque muy
00:01:24
sencillita como es ese culite pero que
00:01:26
en el fondo es una base de datos del
00:01:27
estilo de la que tienen las empresas
00:01:28
como podría ser pues un sql Server un
00:01:30
Oracle etcétera etcétera la base de
00:01:32
datos nos va a devolver el resultado y
00:01:33
ese resultado se lo vamos a mostrar al
00:01:35
usuario también a través de nuestra
00:01:37
aplicación de streaming de esta manera
00:01:38
lo que estamos construyendo es un
00:01:40
sistema que a diferencia de otros
00:01:41
sistemas debe ir orientados al usuario
00:01:42
como podría ser tablón o Power Bay no
00:01:44
necesita absolutamente nada de
00:01:46
conocimiento técnico porque el usuario
00:01:47
únicamente va a tener que hacer una
00:01:49
petición en lenguaje completamente
00:01:50
natural de lo que quiere obtener y va a
00:01:53
ser todo nuestra aplicación la que le
00:01:55
devuelva esos resultados por último como
00:01:56
disclaimer legal Recuerda que cuando
00:01:58
conectas a lápiz de chat gpt enviando
00:02:00
tus datos a los servidores de Open ahí
00:02:02
Así que ten mucho cuidado si vas a hacer
00:02:03
eso con los datos reales y asegúrate de
00:02:06
cumplir todas las políticas de tu
00:02:07
empresa al final es tu responsabilidad
00:02:08
Este vídeo es solo a propósito educativo
00:02:10
y no implica ninguna recomendación de
00:02:12
uso vamos a ver ahora Cuál es nuestra
00:02:13
base de datos en este caso estamos
00:02:15
trabajando para una empresa de ecommerce
00:02:17
la base de datos es muy sencilla he
00:02:19
querido hacerlo así para no complicar en
00:02:20
exceso el ejercicio por lo tanto
00:02:21
únicamente vamos a tener una tabla que
00:02:23
es la tabla de ventas y esta tabla de
00:02:25
ventas pues va a tener las siguientes
00:02:26
columnas el identificador de la factura
00:02:28
el identificador del producto que se ha
00:02:29
vendido el nombre del producto la
00:02:31
cantidad de unidades que se han comprado
00:02:32
la fecha de la factura el precio
00:02:34
unitario de cada uno de sus productos el
00:02:36
identificador del cliente que ha
00:02:37
comprado el país del cliente y el total
00:02:39
de las ventas ventas totales que esto es
00:02:42
el resultado de multiplicar la cantidad
00:02:43
de productos vendidos por el precio
00:02:45
unitario es decir es el importe total en
00:02:47
cada una de esas ventas y aquí tenemos
00:02:50
el ejemplo de unos cuantos datos ves que
00:02:52
son 541.000 casi 542.000 registros o sea
00:02:55
que es una base de datos importante para
00:02:57
hacer unas pruebas porque sean realistas
00:02:59
y como pues esto es la tabla que tenemos
00:03:01
Vale y vamos a ver ya pues cómo está
00:03:03
construida nuestra aplicación en este
00:03:04
caso como ves he utilizado visual Studio
00:03:07
para construir esta aplicación los
00:03:09
componentes que tiene es por un lado la
00:03:11
propia base de datos Recuerda que es una
00:03:13
base de datos sqlite después tienes este
00:03:15
Powerpoint pero que esto es el diagrama
00:03:17
de arquitectura que te enseñé antes
00:03:19
decir no es necesario realmente para
00:03:20
esta aplicación y después tenemos tres
00:03:23
scripts el primer scripts que es el que
00:03:25
se llama en Bars Aquí es donde yo he
00:03:27
guardado mi Api de Open ahí voy a
00:03:29
abrirlo en este caso pues simplemente
00:03:30
con un notepad para decir dónde tienes
00:03:32
que meterlo pues una vez que tengas tu
00:03:34
Api de Open hay simplemente la pegas
00:03:35
aquí guardas y ya estarías y luego
00:03:37
tenemos el que se llama backenz que es
00:03:40
lo que va a hacer toda la parte del
00:03:41
Código de la consulta del usuario
00:03:44
y esa consulta trasladársela a Open ahí
00:03:47
a la Api de chat gpt y tenemos el Script
00:03:49
del frontend que esto es la parte de la
00:03:51
interfaz que vamos a generar con Stream
00:03:54
lead luego a partir de ahí vamos al
00:03:56
siguiente Script que es el del backen y
00:03:57
básicamente lo que tenemos que hacer
00:03:58
aquí Son seis grandes pasos primero
00:04:00
vamos a cargar la base de datos sql y
00:04:02
vamos a utilizar para ello una clase del
00:04:04
propio lanchain que ya nos permite poder
00:04:06
hacer la carga de una base de datos
00:04:08
relacional que sería esta clase la sql
00:04:10
database una vez que tenemos eso
00:04:12
importado pues simplemente le decimos
00:04:14
Dónde tenemos en nuestro equipo la
00:04:16
dirección de esa base de datos una vez
00:04:18
que tenemos cargada la base de datos que
00:04:20
le hemos metido en un objeto que se
00:04:21
llama db lo que hacemos Es importar las
00:04:24
apis entonces en esta parte es donde
00:04:26
importamos del fichero de Script la Api
00:04:29
que ya le deberías haber pegado tu Api
00:04:31
de Open ahí luego lo que hacemos Es
00:04:32
simplemente importar a os para digamos
00:04:34
poder utilizar una variable de entorno y
00:04:37
le cargamos a esta variable del entorno
00:04:39
le cargamos el resultado de la Api de la
00:04:42
variable que te enseñé antes en el
00:04:43
fichero que se llama amp Bars entonces
00:04:46
de momento lo que tenemos es cargada la
00:04:48
base de datos ya tenemos preparada
00:04:49
nuestra Api a partir de aquí empezaría
00:04:51
un poco lo que es realmente el proceso
00:04:52
lo primero que vamos a hacer es crear el
00:04:55
lm es decir crear el propio objeto del
00:04:58
lenguaje que vamos a utilizar y para
00:05:00
ello vamos a utilizar chat Open ahí esta
00:05:02
clase de lanchain también y le vamos a
00:05:04
definir con una temperatura cero esto
00:05:05
significa que no queremos nada de
00:05:07
creatividad en este caso como va a ser
00:05:09
peticiones directamente un usuario
00:05:10
queremos que nos haga la traslación a
00:05:12
sql más parecida a la petición literal
00:05:14
de ese usuario para lo que devuelva lo
00:05:16
que realmente el usuario le está
00:05:17
preguntando y esta parte es importante
00:05:18
porque es el modelo que vamos a utilizar
00:05:20
en este caso yo voy a utilizar el 3.5
00:05:23
Turbo que es bastante más barato que la
00:05:25
versión 4 de gpt luego a partir de ahí
00:05:28
lo siguiente que vamos a hacer es crear
00:05:29
una cadena cuando utilizamos este
00:05:32
paquete lanchain al final hay como dos
00:05:34
grandes tipos de cosas que podemos hacer
00:05:36
podemos hacer las cadenas que es
00:05:38
simplemente pues ir encadenando procesos
00:05:40
para obtener nuestros resultados final o
00:05:42
podemos utilizar otra cosa más avanzada
00:05:44
que se llama agentes en el cual también
00:05:46
lo que podemos hacer es bueno pues
00:05:47
utilizar herramientas externas en este
00:05:49
caso como no necesitamos ninguna
00:05:51
herramienta externa pues simplemente
00:05:53
vamos a utilizar la opción más sencilla
00:05:54
que es hacer una cadena y lo importante
00:05:56
es que seleccionemos esta cadena el sql
00:05:58
database change que esto es precisamente
00:05:59
lo que nos permite hacer ese proceso de
00:06:01
transformar la consulta en lenguaje
00:06:03
natural que nos mete el usuario en un
00:06:05
objeto de sql luego como paso número 5 y
00:06:08
aquí está un poco yo creo lo más
00:06:09
importante de todo el proceso es
00:06:11
definirle una plantilla de prompt al
00:06:13
final ya sabemos cuando estamos
00:06:14
trabajando con modelos del lenguaje que
00:06:16
gran parte del éxito reside en como
00:06:18
nosotros le pasemos las instrucciones
00:06:19
Cuanto más detalladas le pasemos las
00:06:22
instrucciones en cuanto a lo que
00:06:24
queremos que nos haga el formato en el
00:06:26
que queremos que nos lo devuelva
00:06:27
etcétera pues mucho mejor va a ser la
00:06:29
respuesta entonces aquí lo que hacemos
00:06:30
Es Obviamente el usuario cuando va a
00:06:32
estar utilizando la aplicación Él no
00:06:33
tiene que escribir todo esto sería un
00:06:35
rollo el usuario Únicamente lo que tiene
00:06:37
que escribir es cuál es la consulta que
00:06:38
quiere realizar pero nosotros le estamos
00:06:40
añadiendo a esa consulta todo este
00:06:42
pronta Entonces le estamos diciendo Oye
00:06:44
dada no Data sino dada una pregunta del
00:06:47
usuario uno Crea una consulta de ese
00:06:50
culite 2 revisa los resultados de esa
00:06:53
consulta tres devuelve el dato que sea
00:06:56
el resultado de esa consulta y cuatro si
00:06:58
tienes que hacer alguna o devolver
00:07:00
cualquier texto que sea bueno aquí no se
00:07:03
ve muy bien Voy a moverlo que sea
00:07:05
siempre en español y una vez que tenemos
00:07:07
esto pues ya lo último que tenemos que
00:07:08
hacer es simplemente preparar una
00:07:10
función para hacer esa consulta esa
00:07:12
función que lo vamos a llamar consulta
00:07:13
lo único que va a hacer es ese
00:07:15
input del usuario esa pregunta que haga
00:07:17
el usuario va a meter esa pregunta
00:07:19
dentro del formato que nosotros le
00:07:22
habíamos definido aquí y al final va a
00:07:24
llamar a la Api de Open ahí pasándole
00:07:28
esa consulta va a obtener un resultado y
00:07:31
va a devolver ese resultado entonces una
00:07:33
vez que tenemos todo esto ya creado
00:07:34
vamos a ejecutarlo de momento como
00:07:37
todavía no hemos hecho la interface
00:07:38
estamos trabajando únicamente a nivel de
00:07:40
código pero lo que ya hemos hecho pues
00:07:42
es que todo esto ya está funcionando ya
00:07:43
tenemos la consulta disponible Y
00:07:45
entonces si nosotros ahora aquí en la
00:07:46
propia ventana interactiva ya le hacemos
00:07:48
una consulta Llamando a esta función y
00:07:51
le vamos a poner la consulta por ejemplo
00:07:53
Cuántos registros
00:07:55
tiene la tabla para ver simplemente se
00:07:58
está funcionando y nos devuelve que la
00:07:59
tabla de ventas tiene
00:08:01
541.909 registros que si recordamos es
00:08:05
justamente el dato que ya habíamos visto
00:08:07
cuando estábamos atacando directamente a
00:08:09
la base de datos Entonces esto significa
00:08:10
que nuestro backen ya está funcionando
00:08:12
Ahora lo único que nos falta es
00:08:13
Construir la interfaz para que el
00:08:15
usuario lógicamente no tenga que meterse
00:08:17
en este Script hacer las consultas sino
00:08:19
que puede hacerlo directamente a través
00:08:20
de la interfaz de la aplicación Bueno
00:08:21
pues vamos a pasar ya a ver cómo
00:08:23
construimos la interfaz que solo hacemos
00:08:24
aquí en el tercer Script el que se llama
00:08:25
Front end Pero antes de entrar a
00:08:28
explicarte el código voy a enseñarte lo
00:08:29
que es el resultado final que vamos a
00:08:30
obtener para ello he puesto aquí arriba
00:08:32
en el comentario como tenemos que lanzar
00:08:33
esta aplicación es simplemente abrir un
00:08:36
terminal y lanzarlo desde streamlit que
00:08:38
es el paquete que vamos a utilizar para
00:08:39
construir esta aplicación entonces
00:08:41
abrimos un terminal
00:08:45
lo lanzamos y ya directamente se nos va
00:08:48
a abrir un explorador con lo que el
00:08:49
usuario va a ver que como te decía al
00:08:51
principio pues es una aplicación muy
00:08:52
sencilla la he llamado no moleste
00:08:54
usuario de negocio porque ya habíamos
00:08:56
dicho de que bueno pues vamos a intentar
00:08:57
de que nos liberen de todas esas tareas
00:08:59
no y lo que le dice el chat al usuario
00:09:01
de negocio es puedes hacerme a mí todas
00:09:02
las preguntas y dejar trabajar tranquilo
00:09:04
al equipo de Data Science Bueno A partir
00:09:07
de ahí aquí tenemos pues la típica
00:09:08
interfaz de chat en que te puede ayudar
00:09:10
y voy a ponerle pues la misma pregunta
00:09:12
que le había puesto antes cuando hicimos
00:09:13
la consulta del backend simplemente para
00:09:15
ver que funciona después ya vamos a
00:09:17
trabajar un poquito más en hacer unos
00:09:18
ejemplos más avanzados pero de momento
00:09:20
simplemente quería enseñarte lo que es
00:09:21
la interfaz y ver que efectivamente
00:09:22
funciona no entonces podemos ponerle
00:09:24
Cuántos registros
00:09:27
tiene la tabla le hacemos esta pregunta
00:09:30
se lanzamos y ahora ya lo que es la
00:09:32
respuesta Pues nos la va a devolver aquí
00:09:33
debajo y nos dice la tabla tiene
00:09:36
541.909 Regis Bueno pues esto es lo que
00:09:38
vamos a hacer con el código que te voy a
00:09:40
enseñar ahora vale en este caso no voy a
00:09:42
detenerme mucho en explicarte el código
00:09:43
ya te he dicho que lo puedes Descargar
00:09:45
Si quieres en la descripción están las
00:09:47
instrucciones y Bueno pues este código
00:09:48
es mucho más táctico no de las cajitas
00:09:50
de los botones de los eventos click
00:09:51
entonces Simplemente te voy a dar una
00:09:53
visión por arriba de lo que se está
00:09:54
haciendo en cada caso a ver si puedo
00:09:56
poner esto un poquito más largo ahí
00:09:59
entonces aquí simplemente pues hacemos
00:10:00
la importación de los paquetes
00:10:01
necesarios Stream lead como el paquete
00:10:03
base que nos permite hacer aplicaciones
00:10:04
sin necesidad de tener que saber html y
00:10:07
css sino simplemente con python y luego
00:10:09
necesitamos también instalar otro
00:10:10
paquete diferente este de Stream lead no
00:10:13
es un módulo de Stream lead sino que es
00:10:15
un paquete diferente que al final lo que
00:10:17
nos permite es ponerle esa interfaz
00:10:18
estilo de chat para poder Bueno pues
00:10:21
hacer una aplicación como la que te he
00:10:22
enseñado después Aquí simplemente pues
00:10:24
le ponemos los títulos que viste al
00:10:26
comienzo de la aplicación aquí lo único
00:10:28
que hacemos Es crear dos listas una para
00:10:29
las preguntas otra para las respuestas Y
00:10:31
después lo más importante yo creo que
00:10:33
está aquí en esta función de clic que es
00:10:35
lo que pasa cuando el usuario hace clic
00:10:37
en el botón de enviar y que es
00:10:40
básicamente aquí donde ves que pone
00:10:42
respuesta que lo que estamos haciendo es
00:10:44
Llamar a nuestro Script a nuestro módulo
00:10:47
de backenz y dentro del módulo de
00:10:49
backenz te acuerdas de la función que
00:10:51
habíamos definido que se llamaba
00:10:52
consulta y esta es un poco la que hace
00:10:54
la magia porque aquí lo que estás
00:10:55
haciendo es le estás pasando la pregunta
00:10:56
que el usuario ha metido en la cajita
00:10:58
del chat si lo estás pasando al backend
00:11:01
Y pues ejecutando esa funcionalidad que
00:11:04
vimos antes que es la que se produce
00:11:05
cuando llevamos a la función de consulta
00:11:07
no que es la que llama la Api de chat
00:11:10
gpt nos devuelve el código de sql pero
00:11:12
no nos devuelve directamente el código
00:11:13
sino que lo que hace es lo pasa a la
00:11:15
base de datos utilizando lanchain la
00:11:17
base de datos resuelve esa consulta y ya
00:11:19
nos devuelve directamente la respuesta
00:11:21
para el usuario entonces todo eso que es
00:11:23
lo más importante de toda esta parte En
00:11:25
mi opinión pasa aquí en esta en esta
00:11:28
línea pero luego a partir de ahí pues ya
00:11:29
la última parte es simplemente como
00:11:31
hacerlo un bucle infinito que nos
00:11:33
permite ponerle un tic para que bueno
00:11:36
pues después de hacer la primera
00:11:37
pregunta el usuario si quiere pueda
00:11:39
continuar haciendo preguntas eso es
00:11:41
básicamente lo que hace y ya está Esta
00:11:43
es nuestra app Así que ahora ya lo único
00:11:45
que nos queda pues es hacer un par de
00:11:46
consultas para ponerla a prueba vamos a
00:11:48
empezar con una un poquito más sencilla
00:11:49
y luego después vamos a hacer otra que
00:11:52
ya va a requerir una estructura de sql
00:11:53
un poco más complicada a ver si también
00:11:55
es capaz de resolverlos Bueno pues
00:11:57
empezamos con la consulta más sencilla
00:11:58
por ejemplo vamos a hacerle esta
00:12:00
consulta de Cuáles son los tres países
00:12:02
en los que tenemos más ventas totales y
00:12:04
le vamos a decir sacan una tabla con el
00:12:06
país y su total de ventas ejecutamos y
00:12:10
ya tenemos la respuesta nos dice los
00:12:11
tres países con más ventas totales son y
00:12:13
United Kingdom con un total de ventas de
00:12:15
8 millones 187 mil y el segundo
00:12:19
netherlands con un total de ventas de
00:12:22
284.000 para comprobar si esto es cierto
00:12:24
vamos directamente a la base de datos
00:12:26
vamos a una consulta en sql
00:12:28
concretamente lo que le estamos diciendo
00:12:30
es Devuélveme el país y la suma de las
00:12:33
ventas totales de la tabla ventas y para
00:12:36
que nos haga esta suma de ventas totales
00:12:37
por país tenemos que agrupar por país
00:12:39
luego como únicamente queremos los tres
00:12:41
superiores pues lo que le vamos a decir
00:12:43
es que nos ordene los resultados por la
00:12:45
suma de las ventas totales pero en
00:12:47
descendente y nos quedamos con los tres
00:12:49
primeros y efectivamente el resultado
00:12:50
que tenemos es que el primero es lo que
00:12:52
pasó acá nos lo da en inglés como lo
00:12:54
habíamos pedido a ser gpt que nos lo
00:12:55
devolvieran en español pues nos dio
00:12:56
Reino Unido pero aquí no sale United
00:12:58
Kingdom que es como viene directamente
00:12:59
la base de datos Y el número vemos que
00:13:01
es exactamente el mismo y el segundo
00:13:03
netherlands Países Bajos y vemos que el
00:13:05
número es exactamente el mismo Vale pues
00:13:07
Sabemos que esta consulta que era muy
00:13:08
sencillita pues la he hecho sin
00:13:09
problemas pero qué tal haría con una
00:13:11
consulta un poco más compleja que ya
00:13:13
requiriese de una estructura de sql un
00:13:16
poco más avanzada como podría ser una
00:13:17
subconsulta o una cte por ejemplo vamos
00:13:20
a hacerlo con una de las consultas más
00:13:22
típicas en business analytics que es la
00:13:24
de comparar el porcentaje que representa
00:13:27
algún ítem en este caso vamos a hacerlo
00:13:29
por ejemplo con los productos sobre el
00:13:31
total de ventas de todos los productos
00:13:33
esto como te digo es algo súper típico
00:13:35
no Oye pues me calculas las ventas por
00:13:37
cada uno de los productos y luego me
00:13:38
dices pues cada producto se representa
00:13:40
el 5% el 10% o lo que sea sobre el total
00:13:43
de las ventas totales también se hace
00:13:45
mucho con comerciales contribución de
00:13:46
cada comercial sobre las ventas totales
00:13:48
etcétera etcétera entonces vamos a hacer
00:13:50
una consulta de este estilo que ya la
00:13:52
tengo preparada para que no tengamos que
00:13:53
esperar mientras que las escribo y le
00:13:55
vamos a decir Dame los cinco productos
00:13:56
que más se han vendido en cantidad en
00:13:58
una tabla que tenga el nombre del
00:14:00
producto el total de unidades vendidas y
00:14:03
el porcentaje sobre el total de todos
00:14:06
los productos Esta última parte es la
00:14:07
que le añade esta complejidad adicional
00:14:10
Cuando hacemos la consulta en sql porque
00:14:12
vamos a tener que calcular primero ese
00:14:14
total de unidades vendidas de todos los
00:14:16
productos para que después una vez que
00:14:18
ya tengamos las unidades vendidas de
00:14:19
cada producto podamos dividir las de
00:14:22
cada producto por el total de todos los
00:14:23
productos Y a partir de ahí nos dé el
00:14:26
porcentaje Bueno vamos la casilla de
00:14:28
quieres hacer otra pregunta que no lo
00:14:29
habíamos reseteado Entonces reseteamos
00:14:31
no nos ha borrado el pron por lo tanto
00:14:33
se lo vamos a dejar le damos a enviar y
00:14:36
vamos a ver qué nos devuelve Vale pues
00:14:37
lo que nos dice es que los cinco
00:14:38
productos que más se han vendido en
00:14:40
cantidad son el World to gliders lo que
00:14:43
sea que ha vendido
00:14:45
53.847 unidades y después el Jumbo Bag
00:14:48
que ha vendido
00:14:51
47.30063 unidades venimos a nuestra base
00:14:54
de datos y ahora vamos a poner la
00:14:56
consulta sql tendríamos que hacer para
00:14:58
responder a esa pregunta si nosotros lo
00:15:00
hiciéramos directamente escribiéndole
00:15:02
sql Entonces como te comentaba esta
00:15:04
parte es la que le da un poquito más de
00:15:06
complejidad ya que es la estructura de
00:15:07
lo que se llama una ct donde
00:15:09
directamente vamos a calcular esta ct
00:15:11
que la vamos a llamar total unidades y
00:15:13
Esto va a ser la suma de la cantidad que
00:15:16
lo vamos a llamar total de la tabla
00:15:18
ventas Es decir me cojo la tabla ventas
00:15:20
Me cojo la columna cantidad y hago la
00:15:22
suma total esto lo que nos va a dar es
00:15:24
el total total de unidades que se han
00:15:26
vendido independientemente de los
00:15:28
productos y luego lo que vamos a hacer
00:15:31
es la consulta ya principal donde le
00:15:33
vamos a decir que nos devuelva el
00:15:34
producto para cada producto la suma del
00:15:36
total de unidades vendidas esto lo vamos
00:15:38
a llamar unidades vendidas y luego Aquí
00:15:40
lo que hacemos Es calcular ya ese ratio
00:15:42
en el cual tenemos la suma de cantidad
00:15:44
de cada producto lo multiplicamos por
00:15:47
100 simplemente para que nos lo devuelva
00:15:48
En porcentaje y lo dividimos por el
00:15:50
total de unidades total este total de
00:15:53
unidades es la ct que habíamos creado
00:15:54
aquí y este total es la métrica dentro
00:15:57
del total de unidades que habíamos
00:15:59
creado aquí con este alias también al
00:16:01
resultado de esta última operación de
00:16:03
calcular ese porcentaje pues lo vamos a
00:16:04
llamar porcentaje total y luego ya pues
00:16:06
bueno le ponemos las dos tablas que
00:16:08
vamos a necesitar la tabla real y la ct
00:16:10
le decimos que lo agrupe por producto
00:16:12
para que sume estas cantidades por cada
00:16:13
uno de los productos y al igual que el
00:16:16
anterior consulta como queremos un top 5
00:16:17
pues lo que hacemos es primero ordenamos
00:16:19
en descendente por las unidades vendidas
00:16:21
y luego decimos que nos devuelva
00:16:23
únicamente los cinco primeros resultados
00:16:25
Así que vamos a ejecutar esto y aquí
00:16:27
tenemos exactamente la misma respuesta
00:16:28
tenemos el producto que más unidades
00:16:30
vendidas tiene es el World War 2 con
00:16:34
53.847 que es el dato que nos devolvía
00:16:36
también nuestro sistema y nos dice que
00:16:40
esto es el
00:16:41
1,04% sobre el total de ventas y nos
00:16:44
dice que el segundo producto más vendido
00:16:45
es el Jumbo Back con 47.367 que también
00:16:49
es exactamente el mismo dato que nos
00:16:51
devolvía nuestro sistema Bueno pues
00:16:53
espero que este vídeo te haya servido
00:16:54
Para que conozcas otra aplicación de la
00:16:56
Inteligencia artificial a la empresa y
00:16:58
también para que veas como tú puedes
00:17:00
aportar valor a tu empresa como Data
00:17:01
scientist Recuerda que puedes descargar
00:17:03
el código para replicar la app
00:17:04
simplemente suscribiéndote al Canal las
00:17:07
instrucciones para hacerlo están abajo
00:17:08
en la descripción del vídeo y nada más
00:17:09
dale A Like y nos vemos en el siguiente
00:17:11
de Data Science