WEBVTT

00:00.000 --> 00:04.639
Muy bien, hablemos ahora de las funciones de agregaciÃ³n

00:04.639 --> 00:08.960
Estas bÃ¡sicamente son funciones predefinidas
en el lenguaje SQL, las cuales generalmente

00:08.960 --> 00:13.199
van a recibir como argumento una columna,
con la cual van a operar, y nos retornarÃ

00:13.199 --> 00:19.000
el valor de dicha operaciÃ³n. Y estas bellezas te van a permitir
hacer operaciones, como calcular promedios, encontrar valores

00:19.000 --> 00:25.319
mÃ­nimos y mÃ¡ximos, contar elementos y demÃ¡s. Te digo, hay varias
funciones de este estilo, pero las que veremos aquÃ­ son las principales

00:25.319 --> 00:33.919
y son las siguientes, count, sum,
abg, max y min. Empecemos por count

00:33.919 --> 00:37.799
Esta se usa para contar el nÃºmero de registros,
que coinciden con un criterio en especÃ­fico

00:37.799 --> 00:44.319
o para meramente contar el nÃºmero de registros totales. Pongamos un ejemplo,
digamos que no me bastÃ³ con la clase anterior, y quiero seguir aumentando

00:44.319 --> 00:51.020
mi ego, por lo que en este caso quiero saber cuÃ¡ntos empleados tengo. Para esto
puedo hacer un select de la funciÃ³n count, recuerda que a las funciones las llamamos

00:51.020 --> 00:57.959
entre parÃ©ntesis, y dentro de este parÃ©ntesis le enviamos las columnas con las que va
a trabajar, que en este caso le ponemos un asterisco para indicarle que trabaje con todas

00:57.959 --> 01:01.479
podemos por ejemplo ponerle un alias, digamos
total empleados, para que nos devuelva el

01:01.479 --> 01:05.279
resultado en una columna llamada asÃ­, y
Â¿desde dÃ³nde va a sacar esta informaciÃ³n

01:05.279 --> 01:09.760
Pues de la tabla empleados. Al hacer esto verÃ¡s que nos
devuelve una columna, llamada total empleados, como el

01:09.760 --> 01:13.559
alias que pusimos, cuyo valor es 7,
porque en este caso tenemos 7 empleados

01:13.559 --> 01:18.900
Bueno tenemos, tengo, sumÃ­os. Ahora la siguiente funciÃ³n,
la funciÃ³n sum, que esta se utiliza para calcular la suma

01:18.900 --> 01:23.959
total de una columna numÃ©rica, ojo con esto,
numÃ©rica, de un conjunto de registros, y

01:23.959 --> 01:28.360
como te digo viejo, tiene que ser numÃ©rico, no
podemos sumar strings, o sea, Â¿cuÃ¡nto es a mÃ¡s a

01:28.360 --> 01:32.959
Ah, perdÃ³n. Pero pongamos un ejemplo, imaginemos que
queremos calcular todo el costo de recuperaciÃ³n de

01:32.959 --> 01:36.599
todos los incidentes que hemos recuperado,
pues para esto simplemente harÃ­amos un SELECT

01:36.599 --> 01:40.199
llamarÃ­amos a la funciÃ³n, y entre los parÃ©ntesis
pondrÃ­amos el argumento que le vamos a enviar

01:40.199 --> 01:47.599
que como ya te dije es la columna con la que va a trabajar, que en este caso es la columna
costo recuperaciÃ³n, a la cual le podemos meter tambiÃ©n un alias, que se llame costo

01:47.599 --> 01:53.680
total recuperaciÃ³n. Â¿Y de dÃ³nde vamos a sacar todo esto? Pues de
la tabla que contiene esta columna, es decir, la tabla incidentes

01:53.680 --> 01:59.160
Por lo que al hacer esto vemos el total, de todos los costos de
recuperaciÃ³n de todos los incidentes, y en efecto vemos como yo soy rico

01:59.160 --> 02:03.400
Siguiente funciÃ³n, ABG, esta nos permite
calcular el valor promedio de una columna

02:03.400 --> 02:07.400
igualmente numÃ©rica, entre un conjunto de
registros, en pocas palabras, es calcular

02:07.400 --> 02:11.160
la media, por asÃ­ decirlo, de todo el
conjunto de valores con los que va a trabajar

02:11.160 --> 02:18.039
Por ejemplo, digamos que yo quiera evaluar cuÃ¡nto tardan mis empleados en realizar un
proyecto, porque si yo noto que uno de mis empleados no estÃ¡ siendo eficiente, lo mando

02:18.039 --> 02:22.039
a conocer a Batista, y tÃº dirÃ¡s, Â¿cuÃ¡l Batista?
Pues recoge tus cosas, y fuera de mi vista

02:22.039 --> 02:25.759
Y para esto podrÃ­amos hacer un SELECT y
llamar a la funciÃ³n ABG, donde le enviamos

02:25.759 --> 02:30.199
como argumento la columna duraciÃ³n, y le
ponemos un alias, digamos duraciÃ³n promedio

02:30.199 --> 02:35.440
Â¿Y de dÃ³nde sacamos esta informaciÃ³n? Pues de la tabla proyectos,
por lo que al hacer esta consulta vemos el promedio, y en

02:35.440 --> 02:42.880
esta ocasiÃ³n mis empleados se salvaron de conocer a Batista, pero sigo atento. Siguiente,
tenemos la funciÃ³n MAX, y no es STEAL, esta funciÃ³n se utiliza para encontrar

02:42.880 --> 02:47.039
el valor mÃ¡ximo, dentro de una columna en
especÃ­fico, y ya, hace eso simplemente

02:47.039 --> 02:50.880
Por ejemplo, si quisiÃ©ramos descubrir cuÃ¡l ha
sido el incidente de seguridad mÃ¡s reciente

02:50.880 --> 02:58.080
que tenemos en nuestra base de datos, podrÃ­amos hacer un SELECT, enviÃ¡ndole como
argumento la columna fecha, donde le pondremos un alias, digamos incidente mÃ¡s reciente

02:58.080 --> 03:03.520
Â¿Y en quÃ© tabla esta funciÃ³n va a buscar esta columna? Pues de la
tabla incidentes, porque en la tabla incidentes estÃ¡ la columna fecha, y

03:03.520 --> 03:07.279
al ejecutar esta consulta veremos la fecha
mÃ¡s reciente de un incidente, registrada

03:07.279 --> 03:12.479
en nuestra base de datos. Y ya por Ãºltimo, tenemos la
funciÃ³n MIN, que es igual a la funciÃ³n MAX, pero al revÃ©s

03:12.479 --> 03:17.960
eso no tuvo sentido. BÃ¡sicamente, la funciÃ³n MIN encontrarÃ¡
el valor, pero mÃ­nimo, de una columna en especÃ­fico

03:17.960 --> 03:24.000
o sea MAX consigue el mÃ¡ximo, y MIN consigue el mÃ­nimo. Por ejemplo,
digamos que yo quiero identificar el proyecto, que sea mÃ¡s antiguo en nuestra

03:24.000 --> 03:29.199
base de datos, o sea lo que hicimos antes, pero en este caso, el
mÃ¡s antiguo, porque evidentemente a nivel numÃ©rico serÃ¡ menor

03:29.199 --> 03:32.880
Y digamos en este caso, para tocar otras clÃ¡usulas
que hemos visto, yo quiero ver el proyecto

03:32.880 --> 03:36.839
mÃ¡s antiguo, cuyo estado sigue en progreso,
entonces partiendo de estos requisitos podrÃ­a

03:36.839 --> 03:40.399
hacer un SELECT, donde llame a la funciÃ³n MIN,
y como argumento le puedo enviar la columna

03:40.399 --> 03:44.000
fecha inicio, le puedo poner un alias
tambiÃ©n, digamos proyecto mÃ¡s antiguo

03:44.000 --> 03:50.360
Â¿Y de dÃ³nde va a sacar esto este compa? Pues de la tabla proyectos. Pero como
te dije, yo Ãºnicamente quiero ver la fecha del mÃ¡s antiguo, cuyo estado estÃ

03:50.360 --> 03:54.039
en progreso, por lo que puedo ponerle un WHERE,
indicÃ¡ndole que en este caso, la columna

03:54.039 --> 03:59.399
de estado debe estar en progreso, y como en progreso
es un string, lo pongo entre comillas simples

03:59.399 --> 04:03.000
Y al ejecutar esta consulta veremos en este caso
la fecha de inicio del proyecto mÃ¡s antiguo

04:03.000 --> 04:07.679
cuyo estado sigue en progreso. Y como puedes apreciar, parece
que los empleados no hacen nada, porque esto lleva tiempo

04:07.679 --> 04:13.199
HabrÃ¡ que decirles algo, o les llamamos a Batista. Y te digo, hay muchas
mÃ¡s funciones, pero las principales y las que quiero que conozcas

04:13.199 --> 04:15.919
son estas. AsÃ­ que con esto explicado, continuemos
