SlideShare una empresa de Scribd logo
1 de 50
Gestión de Datos - 2007 SQL
Funciones de agregación Una función de agregación es una función que  a partir de uno o muchos valores  retorna uno y sólo uno.
Funciones de agregación A partir de una tabla con muchas filas, es posible mostrar un número reducido de filas, gracias a las  funciones de agregación . Desde ese punto de vista, es posible considerar a las funciones de agregación como totalizadoras o sumarizadoras. Sum ()
Funciones de agregación vs. operadores No confundir una  función de agregación  (e.g.  Sum() ) con un  operador  (e.g.  + )  !! a + b Sum (a) Sum (b)
Funciones de agregación vs. operadores: ejemplo ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Funciones de agregación vs. operadores: ejemplo +  es una operación  entre   columnas  de una  misma fila Sum ()  es una operación  entre   filas  de una  misma columna
Funciones de agregación ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Una función de agregación es una función que a partir de uno o muchos valores retorna uno y sólo uno. Algunas funciones de agregación:
Funciones de agregación Select   sum(x)   From  Agg Cuando se utilizan funciones de agregación,  SQL Server no le coloca nombre a la columna.  Es recomendable utilizar un alias. Select   avg(x) as avg   From  Agg
Funciones de agregación Una misma columna puede agregarse  simultáneamente con distintas funciones Select   max(x) as max,  min(x) as min From  Agg
Funciones de agregación: count vs. count distinct El  count distinct  primero elimina los duplicados y luego cuenta Select   count (x) as count,  count (distinct x)  as  [count distinct] From  Agg
Funciones de agregación Select   sum (x)  as  sum, avg (x)  as  avg, min (x)  as  min, max (x)  as  max, count (x)  as  count,  count (distinct x)  as   [count distinct] From  Agg
Funciones de agregación: Ejercicio Mostrar el promedio de los valores sin usar la función  avg () . Select  sum (x)  /  count (x)  as  avg ,  From  Agg El promedio de valores enteros  no siempre  es entero ! Select   sum (x) * (1.0)   /  count (x)  as  avg ,  From  Agg
Funciones de agregación: total general vs. subtotales A veces es útil calcular un total general ... Select  sum (ventas$)  as  sum,   From  Agg
Funciones de agregación: total general vs. subtotales ... pero muy a menudo se precisan totales intermedios  Select  año, sum (ventas$)  as  ventas   From  Ventas Group by  año
Funciones de agregación: Group by Select  …  Group by  año Select  …año, sum(ventas$) as ventas   Group by  año
Funciones de agregación: Group by ,[object Object],[object Object],[object Object]
Funciones de agregación: Group by Mostrar las ventas por provincia Select  codProv, Provincia,  sum (ventas$)  as  ventas   From  Ventas Group by  codProv Server: Msg 8120, Level 16, State 1, Line 1 Column 'Ventas.Provincia' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Funciones de agregación: Group by Select  …  Group by  codProv Select  codProv, Provincia, sum(ventas$) as ventas
Funciones de agregación: Group by Mostrar las ventas por provincia Select  codProv, Provincia,  sum (ventas$)  as  ventas   From  Ventas Group by  codProv,  Provincia
Funciones de agregación: Group by Select  …  Group by  codProv,  Provincia Select  codProv, Provincia, sum(ventas$) as ventas
Funciones de agregación: Group by ,[object Object],[object Object],[object Object],[object Object]
Funciones de agregación: Group by: Ejercicio 1 unid_vend: unidades vendidas Mostrar la cantidad de ventas realizadas por cada empleado Select  legajo, nombre,  count (unid_vend)  as  cant   From  Ventas Group by  legajo, nombre
Funciones de agregación: Group by: Ejercicio 2 Mostrar la cantidad de ventas realizadas por cada empleado Select  Empleado.legajo, nombre,  count (unid_vend)  as  cant   From  Ventas  Inner Join  Empleado On  Empleado.Legajo = Ventas.Legajo Group by  Empleado.legajo, nombre
Funciones de agregación: Group by: Ejercicio 2 Inner Join
Funciones de agregación: Group by: Ejercicio 2 Select …  Group by Empleado.Legajo Select  Empleado.Legajo, nombre, Count (unid_vend) as cant
Funciones de agregación: Where vs. Having Select … Where  factura = 23 …  Group by  …
Funciones de agregación: Where vs. Having Select factura, sum(total)  Group by  factura … Having   sum(total) > 100 La cláusula Having se utiliza para poner condiciones que se apliquen luego del group by, es decir, sobre los grupos formados. Select factura, sum(total)  Group by factura Having sum(total) > 100
Funciones de agregación: Where vs. Having Select factura, sum(total)  Where total > 25 Group by factura Having sum(total) > 100 Where  total > 25 Select factura, sum(total)  Group by  factura Having   sum(total) > 100
Funciones de agregación: Where vs. Having Where Group by Having Where se aplica sobre la tabla original Having se aplica sobre los grupos formados
Select: claúsula From Select   <columna(s)> From   <tabla(s)>   Where  <condicione(s)>   Dentro de la sentencia Select, la cláusula From se utiliza para indicar de qué tablas se quiere obtener la información.  Referencia como mínimo a una tabla, aunque puede incluir varias El resultado del Select es siempre  UNA  tabla
Select: claúsula From Cuando quieren obtenerse datos que están distribuidos en varias tablas, es preciso juntarlas. Eso es lo que se conoce como Join  Select   <columna(s)> From   <tabla 1 > Join <tabla 2 > On <condición>   Where  <condicione(s)>
Tipos de Join Tipos de Join   Cuando quieren obtenerse datos que están distribuidos en varias tablas, es preciso juntarlas. Eso es lo que se conoce como Join  Cross Join Inner Join Outer Join Left Outer Join Right Outer Join Full Outer Join
Cross Join: producto cartesiano S elect  *  F rom  Compra  Cross   Join  Articulo;
Inner Join: elementos comunes a ambas tablas S elect  *  F rom  Compra  Cross   Join  Articulo;
Inner Join: elementos comunes a ambas tablas S elect  *  F rom  Compra  Cross   Join  Articulo Where   cod = cod ; Si las dos tablas tienen una columna con el mismo nombre, para utilizarla hay que referirla de la forma  tabla.columna Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'. Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'.
Inner Join: elementos comunes a ambas tablas S elect  *  F rom  Compra  Cross   Join  Articulo Where   compra.cod = articulo.cod ; Un Cross Join con un Where y un Inner Join dan el mismo resultado S elect  *  F rom  Compra  Inner   Join  Articulo On   compra.cod = articulo.cod ; ... ó ...
Inner Join: elementos comunes a ambas tablas S elect   cod, cant, nombre   F rom  Compra  Inner   Join  Articulo On   compra.cod = articulo.cod ; Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'.
Inner Join: elementos comunes a ambas tablas No es obligatorio prefijar todas las columnas. Sólo las ambiguas S elect   compra.cod , cant, nombre   F rom  Compra  Inner   Join  Articulo On  compra.cod = articulo.cod ; S elect   articulo.cod , cant, nombre   F rom  Compra  Inner   Join  Articulo On  compra.cod = articulo.cod ; ... ó ...
Outer Join: elementos sin correspondencia Un Left Outer Join trae todas las filas de la primera tabla, tengan o no coincidencia en la segunda tabla, y completando con valores nulos donde sea necesario. S elect   *   F rom  Compra  Left Outer   Join  Articulo On  compra.cod = articulo.cod ; ?
Outer Join: elementos sin correspondencia Un Right Outer Join trae todas las filas de la segunda tabla, tengan o no coincidencia en la primera tabla, y completando con valores nulos donde sea necesario. S elect   *   F rom  Compra  Right Outer   Join  Articulo On  compra.cod = articulo.cod ; ?
Outer Join: elementos sin correspondencia Un Left Outer Join y un Right Outer Join son igualmente potentes. S elect   *   F rom   Compra   Left Outer   Join   Articulo On  compra.cod = articulo.cod ; ? S elect   *   F rom   Articulo   Right Outer   Join   Compra On  compra.cod = articulo.cod ; ... ó ...
Outer Join: elementos sin correspondencia Un Left Outer Join y un Right Outer Join son igualmente potentes. S elect   *   F rom  Compra  Full Outer   Join  Articulo On  compra.cod = articulo.cod ; ? ?
Tipos de Join: resumen ? ? Compra Inner Join Articulo
Tipos de Join: resumen ? ? Compra Left Outer Join Articulo
Tipos de Join: resumen ? ? Compra Right Outer Join Articulo
Tipos de Join: resumen ? ? Compra Full Outer Join Articulo
Tipos de Join: ejercicio Mostrar las ventas indicando en qué ciudad ocurrieron. Excluir las ciudades sin ventas y las ventas que no se sabe en dónde ocurrieron Select   C iudad .codCiudad, ciudad, monto  From  Ciudad  Inner Join  Ventas  on   C iudad .codCiudad   =   Ventas .codCiudad
Tipos de Join: ejercicio Mostrar las ventas indicando en qué ciudad ocurrieron. Excluir las ciudades sin ventas, pero no excluir ninguna venta. Si no se conoce la descripcion de una ciudad, mostrar aunque sea el ID Select   Ventas .codCiudad, ciudad, monto  From  Ciudad  Right Outer  Join  Ventas  on   C iudad .codCiudad   =   Ventas .codCiudad
Cross Join: sintaxis alternativa S elect  *  F rom  Compra  Cross   Join  Articulo; S elect  *  F rom  Compra ,  Articulo; ... ó ... El operador , que se aplica a tablas  es equivalente al Cross Join
Inner Join: elementos comunes a ambas tablas S elect  *  F rom  Compra  Cross   Join  Articulo Where   compra.cod = articulo.cod ; S elect  *  F rom  Compra  Inner   Join  Articulo On   compra.cod = articulo.cod ; ... ó ... S elect  *  F rom  Compra ,  Articulo Where   compra.cod = articulo.cod ; ... ó ...

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Nested Queries Lecture
Nested Queries LectureNested Queries Lecture
Nested Queries Lecture
 
Vistas en SQL
Vistas en SQLVistas en SQL
Vistas en SQL
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
MySQL Views
MySQL ViewsMySQL Views
MySQL Views
 
Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)Ejercicio sql tienda informatica (1)
Ejercicio sql tienda informatica (1)
 
Sequences and indexes
Sequences and indexesSequences and indexes
Sequences and indexes
 
04 j flex
04 j flex04 j flex
04 j flex
 
Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos Sql DML Lenguaje de manipulación de datos
Sql DML Lenguaje de manipulación de datos
 
Sql joins inner join self join outer joins
Sql joins inner join self join outer joinsSql joins inner join self join outer joins
Sql joins inner join self join outer joins
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Ejercicios-sql-1-14
Ejercicios-sql-1-14Ejercicios-sql-1-14
Ejercicios-sql-1-14
 
Types of keys dbms
Types of keys dbmsTypes of keys dbms
Types of keys dbms
 
SQL select statement and functions
SQL select statement and functionsSQL select statement and functions
SQL select statement and functions
 
Lenguaje estructurado de consulta
Lenguaje estructurado de consultaLenguaje estructurado de consulta
Lenguaje estructurado de consulta
 
Date and time functions in mysql
Date and time functions in mysqlDate and time functions in mysql
Date and time functions in mysql
 
Notación infija postfija
Notación infija postfijaNotación infija postfija
Notación infija postfija
 
Estructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de OrdenamientoEstructura de Datos Unidad - V: Métodos de Ordenamiento
Estructura de Datos Unidad - V: Métodos de Ordenamiento
 
Oracle: Joins
Oracle: JoinsOracle: Joins
Oracle: Joins
 
Comandos utilizados en sql
Comandos utilizados en sqlComandos utilizados en sql
Comandos utilizados en sql
 
Aggregate functions
Aggregate functionsAggregate functions
Aggregate functions
 

Destacado (20)

Curso SQL - Leccion 7
Curso SQL - Leccion 7  Curso SQL - Leccion 7
Curso SQL - Leccion 7
 
Curso SQL - Leccion 6
Curso SQL - Leccion 6Curso SQL - Leccion 6
Curso SQL - Leccion 6
 
Ejercicios resueltos de sql
Ejercicios resueltos de sqlEjercicios resueltos de sql
Ejercicios resueltos de sql
 
MANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQLMANUAL COMPLETO DE SQL
MANUAL COMPLETO DE SQL
 
Caso de estudio joins
Caso de estudio joinsCaso de estudio joins
Caso de estudio joins
 
Creación de tablas en Microsoft Access
Creación de tablas en Microsoft AccessCreación de tablas en Microsoft Access
Creación de tablas en Microsoft Access
 
Google merchant en PrestaShop
Google merchant en PrestaShopGoogle merchant en PrestaShop
Google merchant en PrestaShop
 
Access Clase 02
Access Clase 02Access Clase 02
Access Clase 02
 
Mk vs dc fatalities
Mk vs dc fatalitiesMk vs dc fatalities
Mk vs dc fatalities
 
Base de-datos-externa
Base de-datos-externa Base de-datos-externa
Base de-datos-externa
 
集眾 之力,挑戰未來
集眾之力,挑戰未來集眾之力,挑戰未來
集眾 之力,挑戰未來
 
El nuevo Joomla! 1.6
El nuevo Joomla! 1.6El nuevo Joomla! 1.6
El nuevo Joomla! 1.6
 
Relacionar tablas en SQL
Relacionar tablas en SQLRelacionar tablas en SQL
Relacionar tablas en SQL
 
TRIGGERS Cliente - servidor
TRIGGERS Cliente - servidorTRIGGERS Cliente - servidor
TRIGGERS Cliente - servidor
 
Plsql
PlsqlPlsql
Plsql
 
Taller de sql server no 3
Taller de sql server no 3Taller de sql server no 3
Taller de sql server no 3
 
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTASIntroducción a JOINS, CTE, APPLY y SUBCONSULTAS
Introducción a JOINS, CTE, APPLY y SUBCONSULTAS
 
Tarea dqs en ssis nunca termina
Tarea dqs en ssis nunca terminaTarea dqs en ssis nunca termina
Tarea dqs en ssis nunca termina
 
Act1 access sql
Act1 access sqlAct1 access sql
Act1 access sql
 
Instalacion de prestashop
Instalacion de prestashopInstalacion de prestashop
Instalacion de prestashop
 

Similar a Presentacion Sql 2

Presentacio Sql 1
Presentacio Sql 1Presentacio Sql 1
Presentacio Sql 1Martink137
 
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALCLA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALClis chuqui
 
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALCLA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALCEduin Guaman
 
Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005pabloesp
 
bd2-teorico02.pdf
bd2-teorico02.pdfbd2-teorico02.pdf
bd2-teorico02.pdfsrmv59
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujofcgm2
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfdMir TirHu
 
Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Josué Naquid
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfdMir TirHu
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujojhon silva
 

Similar a Presentacion Sql 2 (20)

Presentacio Sql 1
Presentacio Sql 1Presentacio Sql 1
Presentacio Sql 1
 
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALCLA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
 
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALCLA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
LA FUNCIÓN PROMEDIO EN OPENOFFICE CALC
 
Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005Mejoras en T-SQL para SQL Server 2005
Mejoras en T-SQL para SQL Server 2005
 
Elementos de programacion 02
Elementos de programacion 02Elementos de programacion 02
Elementos de programacion 02
 
Consultas
ConsultasConsultas
Consultas
 
Unidad 8
Unidad 8Unidad 8
Unidad 8
 
bd2-teorico02.pdf
bd2-teorico02.pdfbd2-teorico02.pdf
bd2-teorico02.pdf
 
LibreOffice_Calc_2.pptx
LibreOffice_Calc_2.pptxLibreOffice_Calc_2.pptx
LibreOffice_Calc_2.pptx
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Sentencia select
Sentencia selectSentencia select
Sentencia select
 
Iniciación a las hojas de cálculo
Iniciación a las hojas de cálculoIniciación a las hojas de cálculo
Iniciación a las hojas de cálculo
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfd
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)Diagramasdeflujo 141006093907-conversion-gate01 (1)
Diagramasdeflujo 141006093907-conversion-gate01 (1)
 
Manual de usuario dfd
Manual de usuario dfdManual de usuario dfd
Manual de usuario dfd
 
Andy
AndyAndy
Andy
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Dfd
DfdDfd
Dfd
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Presentacion Sql 2

  • 1. Gestión de Datos - 2007 SQL
  • 2. Funciones de agregación Una función de agregación es una función que a partir de uno o muchos valores retorna uno y sólo uno.
  • 3. Funciones de agregación A partir de una tabla con muchas filas, es posible mostrar un número reducido de filas, gracias a las funciones de agregación . Desde ese punto de vista, es posible considerar a las funciones de agregación como totalizadoras o sumarizadoras. Sum ()
  • 4. Funciones de agregación vs. operadores No confundir una función de agregación (e.g. Sum() ) con un operador (e.g. + ) !! a + b Sum (a) Sum (b)
  • 5.
  • 6. Funciones de agregación vs. operadores: ejemplo + es una operación entre columnas de una misma fila Sum () es una operación entre filas de una misma columna
  • 7.
  • 8. Funciones de agregación Select sum(x) From Agg Cuando se utilizan funciones de agregación, SQL Server no le coloca nombre a la columna. Es recomendable utilizar un alias. Select avg(x) as avg From Agg
  • 9. Funciones de agregación Una misma columna puede agregarse simultáneamente con distintas funciones Select max(x) as max, min(x) as min From Agg
  • 10. Funciones de agregación: count vs. count distinct El count distinct primero elimina los duplicados y luego cuenta Select count (x) as count, count (distinct x) as [count distinct] From Agg
  • 11. Funciones de agregación Select sum (x) as sum, avg (x) as avg, min (x) as min, max (x) as max, count (x) as count, count (distinct x) as [count distinct] From Agg
  • 12. Funciones de agregación: Ejercicio Mostrar el promedio de los valores sin usar la función avg () . Select sum (x) / count (x) as avg , From Agg El promedio de valores enteros no siempre es entero ! Select sum (x) * (1.0) / count (x) as avg , From Agg
  • 13. Funciones de agregación: total general vs. subtotales A veces es útil calcular un total general ... Select sum (ventas$) as sum, From Agg
  • 14. Funciones de agregación: total general vs. subtotales ... pero muy a menudo se precisan totales intermedios Select año, sum (ventas$) as ventas From Ventas Group by año
  • 15. Funciones de agregación: Group by Select … Group by año Select …año, sum(ventas$) as ventas Group by año
  • 16.
  • 17. Funciones de agregación: Group by Mostrar las ventas por provincia Select codProv, Provincia, sum (ventas$) as ventas From Ventas Group by codProv Server: Msg 8120, Level 16, State 1, Line 1 Column 'Ventas.Provincia' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
  • 18. Funciones de agregación: Group by Select … Group by codProv Select codProv, Provincia, sum(ventas$) as ventas
  • 19. Funciones de agregación: Group by Mostrar las ventas por provincia Select codProv, Provincia, sum (ventas$) as ventas From Ventas Group by codProv, Provincia
  • 20. Funciones de agregación: Group by Select … Group by codProv, Provincia Select codProv, Provincia, sum(ventas$) as ventas
  • 21.
  • 22. Funciones de agregación: Group by: Ejercicio 1 unid_vend: unidades vendidas Mostrar la cantidad de ventas realizadas por cada empleado Select legajo, nombre, count (unid_vend) as cant From Ventas Group by legajo, nombre
  • 23. Funciones de agregación: Group by: Ejercicio 2 Mostrar la cantidad de ventas realizadas por cada empleado Select Empleado.legajo, nombre, count (unid_vend) as cant From Ventas Inner Join Empleado On Empleado.Legajo = Ventas.Legajo Group by Empleado.legajo, nombre
  • 24. Funciones de agregación: Group by: Ejercicio 2 Inner Join
  • 25. Funciones de agregación: Group by: Ejercicio 2 Select … Group by Empleado.Legajo Select Empleado.Legajo, nombre, Count (unid_vend) as cant
  • 26. Funciones de agregación: Where vs. Having Select … Where factura = 23 … Group by …
  • 27. Funciones de agregación: Where vs. Having Select factura, sum(total) Group by factura … Having sum(total) > 100 La cláusula Having se utiliza para poner condiciones que se apliquen luego del group by, es decir, sobre los grupos formados. Select factura, sum(total) Group by factura Having sum(total) > 100
  • 28. Funciones de agregación: Where vs. Having Select factura, sum(total) Where total > 25 Group by factura Having sum(total) > 100 Where total > 25 Select factura, sum(total) Group by factura Having sum(total) > 100
  • 29. Funciones de agregación: Where vs. Having Where Group by Having Where se aplica sobre la tabla original Having se aplica sobre los grupos formados
  • 30. Select: claúsula From Select <columna(s)> From <tabla(s)> Where <condicione(s)> Dentro de la sentencia Select, la cláusula From se utiliza para indicar de qué tablas se quiere obtener la información. Referencia como mínimo a una tabla, aunque puede incluir varias El resultado del Select es siempre UNA tabla
  • 31. Select: claúsula From Cuando quieren obtenerse datos que están distribuidos en varias tablas, es preciso juntarlas. Eso es lo que se conoce como Join Select <columna(s)> From <tabla 1 > Join <tabla 2 > On <condición> Where <condicione(s)>
  • 32. Tipos de Join Tipos de Join Cuando quieren obtenerse datos que están distribuidos en varias tablas, es preciso juntarlas. Eso es lo que se conoce como Join Cross Join Inner Join Outer Join Left Outer Join Right Outer Join Full Outer Join
  • 33. Cross Join: producto cartesiano S elect * F rom Compra Cross Join Articulo;
  • 34. Inner Join: elementos comunes a ambas tablas S elect * F rom Compra Cross Join Articulo;
  • 35. Inner Join: elementos comunes a ambas tablas S elect * F rom Compra Cross Join Articulo Where cod = cod ; Si las dos tablas tienen una columna con el mismo nombre, para utilizarla hay que referirla de la forma tabla.columna Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'. Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'.
  • 36. Inner Join: elementos comunes a ambas tablas S elect * F rom Compra Cross Join Articulo Where compra.cod = articulo.cod ; Un Cross Join con un Where y un Inner Join dan el mismo resultado S elect * F rom Compra Inner Join Articulo On compra.cod = articulo.cod ; ... ó ...
  • 37. Inner Join: elementos comunes a ambas tablas S elect cod, cant, nombre F rom Compra Inner Join Articulo On compra.cod = articulo.cod ; Server: Msg 209, Level 16, State 1, Line 1 Ambiguous column name 'cod'.
  • 38. Inner Join: elementos comunes a ambas tablas No es obligatorio prefijar todas las columnas. Sólo las ambiguas S elect compra.cod , cant, nombre F rom Compra Inner Join Articulo On compra.cod = articulo.cod ; S elect articulo.cod , cant, nombre F rom Compra Inner Join Articulo On compra.cod = articulo.cod ; ... ó ...
  • 39. Outer Join: elementos sin correspondencia Un Left Outer Join trae todas las filas de la primera tabla, tengan o no coincidencia en la segunda tabla, y completando con valores nulos donde sea necesario. S elect * F rom Compra Left Outer Join Articulo On compra.cod = articulo.cod ; ?
  • 40. Outer Join: elementos sin correspondencia Un Right Outer Join trae todas las filas de la segunda tabla, tengan o no coincidencia en la primera tabla, y completando con valores nulos donde sea necesario. S elect * F rom Compra Right Outer Join Articulo On compra.cod = articulo.cod ; ?
  • 41. Outer Join: elementos sin correspondencia Un Left Outer Join y un Right Outer Join son igualmente potentes. S elect * F rom Compra Left Outer Join Articulo On compra.cod = articulo.cod ; ? S elect * F rom Articulo Right Outer Join Compra On compra.cod = articulo.cod ; ... ó ...
  • 42. Outer Join: elementos sin correspondencia Un Left Outer Join y un Right Outer Join son igualmente potentes. S elect * F rom Compra Full Outer Join Articulo On compra.cod = articulo.cod ; ? ?
  • 43. Tipos de Join: resumen ? ? Compra Inner Join Articulo
  • 44. Tipos de Join: resumen ? ? Compra Left Outer Join Articulo
  • 45. Tipos de Join: resumen ? ? Compra Right Outer Join Articulo
  • 46. Tipos de Join: resumen ? ? Compra Full Outer Join Articulo
  • 47. Tipos de Join: ejercicio Mostrar las ventas indicando en qué ciudad ocurrieron. Excluir las ciudades sin ventas y las ventas que no se sabe en dónde ocurrieron Select C iudad .codCiudad, ciudad, monto From Ciudad Inner Join Ventas on C iudad .codCiudad = Ventas .codCiudad
  • 48. Tipos de Join: ejercicio Mostrar las ventas indicando en qué ciudad ocurrieron. Excluir las ciudades sin ventas, pero no excluir ninguna venta. Si no se conoce la descripcion de una ciudad, mostrar aunque sea el ID Select Ventas .codCiudad, ciudad, monto From Ciudad Right Outer Join Ventas on C iudad .codCiudad = Ventas .codCiudad
  • 49. Cross Join: sintaxis alternativa S elect * F rom Compra Cross Join Articulo; S elect * F rom Compra , Articulo; ... ó ... El operador , que se aplica a tablas es equivalente al Cross Join
  • 50. Inner Join: elementos comunes a ambas tablas S elect * F rom Compra Cross Join Articulo Where compra.cod = articulo.cod ; S elect * F rom Compra Inner Join Articulo On compra.cod = articulo.cod ; ... ó ... S elect * F rom Compra , Articulo Where compra.cod = articulo.cod ; ... ó ...