Sunteți pe pagina 1din 6

I. II.

OBJETIVOS Realizar consultas utilizando las diferentes funciones de grupo. CONTENIDO Funciones de Grupo o AVG Promedio ponderado o COUNT contar la cantidad de registro o MA fec!a reciente o M"N fec!a antigua o #UM suma de los registros GROUP $% agrupa registros &AV"NG condici'n de ()s*ueda MARCO TERICO

#elect III.

Muc!as peticiones de informaci'n no re*uieren el ni+el de detalle proporcionado por las consultas descritas en las sesiones anteriores. A!ora +eremos *ue las sentencias de oracle soporta peticiones de datos sumarios mediante funciones de columna , mediante cl-usulas GROUP $% , &AV"NG de la sentencia #./.CT. /as funciones de agregaci'n permiten consolidar datos num0ricos. .l uso de la cl-usula GROUP $% nos permitir- o(tener reportes con data consolidada seg)n distintos criterios. FUNCIONES DE AGREGACION #on funciones *ue permiten efectuar una operaci'n aritm0tica *ue resume los +alores de una columna de toda la ta(la1 o resume los +alores de la columna agrupados seg)n determinado criterio la funci'n produce un solo +alor *ue es el resumen de la ta(la1 o de cada uno de los grupos. 1. SUM 2e+uel+e la suma del con3unto de +alores contenido en un campo espec4fico de una consulta. Sintaxis : SELECT SUM(` DISTINCT! "x#$"si%n& FROM TABLA .n donde5 DISTINCT indica *ue de(e eliminarse los +alores duplicados de e6presi'n antes de a+aluar la funci'n.

"x#$"si%n representa el nom(re del campo *ue contiene los datos *ue desean sumarse o una e6presi'n *ue realice un c-lculo utilizando los datos de dic!os campos. /os operandos de "x#$"si%n pueden incluir el nom(re de un campo de una ta(la1 una constante o una funci'n. V"a'(s a)*+n(s ","'#)(s: EJEM-LO .1: E) si*+i"nt" ","'#)( $"t($na ") t(ta) /" +ni/a/"s #"/i/as ()a s+'a /" t(/(s )(s 0a)($"s a)'a1"na/(s "n ") 1a'#( 21anti/a/2 /" )a ta3)a G+ia4/"ta))"&.
SELECT SUM(cantidad ) as Cantidad pedidos FROM GUIA_DETALLE

EJEM-LO .5: el siguiente e3emplo retorna el monto Total de los productos +endidos de la ta(la G+ia4/"ta))"

5.

AVG: Calcula la media aritm0tica de un con3unto de +alores contenido en un campo especificado de una consulta. Sintaxis : SELECT AVG((` DISTINCT! "x#$"si%n4n+'6$i1a& FROM TABLA .n donde "x#$"si%n4n+'6$i1a representa el campo *ue contiene los datos num0ricos para los *ue se desea calcular la media o una e6presi'n *ue realiza un c-lculo utilizando los datos de dic!o campo. /a media calculada por AVG es la media aritm0tica7la suma de los +alores di+idido por el n)mero de +alores8.la funci'n AVG no inclu,e ning)n campo Null en el c-lculo. DISTINCT indica *ue de(e eliminarse los +alores duplicados de e6presi'n antes de a+aluar la funci'n. EJEM-LO .75 O(tener el precio unitario promedio de todos los productos en la ta(la productos.
SELECT AVG( !ecio !o"eedo!) as ROMEDIO FROM !od#cto RECIOS

EJEM-LO .8: .l siguiente e3emplo retorna el promedio de unidades pedidas 7la media de todos los +alores almacenados en el campo cantidad de la ta(la Guia9detalle :8.

7.

MIN9 MA: 2e+uel+en el m4nimo o el m-6imo de un con3unto de +alores contenido en un campo espec4fico de una consulta. Sintaxis : SELECT MIN("x#$"si%n& FROM TABLA SELECT MA:("x#$"si%n& FROM TABLA .n donde "x#$"si%n es el campo so(re el *ue se desea realizar el c-lculo. "x#$"si%n pueden incluir el nom(re de un campo de una ta(la1 una constante o una funci'n. EJEM-LO .;: .l siguiente e3emplo retorna el precio m-s alto , m-s (a3o de los productos registrados en la ta(la #$(/+1t(s
SELECT MA$ ( !ecio !o"eedo!)AS RECIO MA%OR & MI'( !ecio !o"eedo!) AS RECIO ME'OR FROM RODUCTO

EJEM-LO .<: .l siguiente e3emplo retorna el pedido m-s pe*ue;o , lo refle3a en el campo :minimo:. EJEM-LO .=: .l siguiente e3emplo retorna la guia de remisi'n m-s antigua EJEM-LO : .l siguiente e3emplo retorna la guia de remisi'n m-s reciente. EJEM-LO 1.: .l siguiente e3emplo retorna el nom(re del primer producto , del ultimo producto si se ordena en (ase al nom(re. 8. COUNT Calcula el n)mero de registros de+ueltos por una consulta. Sintaxis: SELECT COUNT DISTINCT!("x#$"si%n& FROM TABLA .n donde "x#$"si%n contiene el nom(re del campo *ue desea contar. /os operandos de "x#$"si%n pueden incluir el nom(re de un campo de una ta(la1 una constante o una funci'n. Puede contar cual*uier tipo de datos incluso te6to. Aun*ue "x#$"si%n puede realizar un c-lculo so(re un campo1 count simplemente cuenta el n)mero de registros sin tener en cuenta *u0 +alores se almacenan en los registros. /a funci'n COUNT no cuenta los registros *ue tienen campos NU// a menos *ue "x#$"si%n sea el car-cter comod4n asterisco 7<8. #i utiliza un asterisco1 COUNT calcula el n)mero total de registros1 inclu,endo a*uellos *ue contienen campos null. COUNT7<8 .s

considera(lemente mas r-pida *ue count7campo8. No se de(e poner el asterisco entre comillas simples 7=<>8 EJEM-LO 11: E) si*+i"nt" ","'#)( 1+"nta ") t(ta) /" #$(/+1t(s $"*ist$a/(s "n )a 3as" /" /at(s
SELECT COU'T(() AS TOTAL_ ROCUCTOS FROM p!od#cto

EJEM-LO 15: el siguiente e3emplo retorna el total de empleados *ue nacieron el a;o ?@AB EJEM-LO17: .l siguiente e3emplo retorna el total1 la media1 el m-6imo , el m4nimo de unidades pedidas1 , el n)mero de pedidos realizados.
Nota:

#e pueden com(inar +arias funciones de columna en una e6presi'n pero no se pueden anidar funciones de columna1 es decir5 SELECT (AVG(ventas) * 3) + SUM(cuota) FROM ... es correcto GROU- B> ? @AVING A. GROU- B> Com(ina los registros con +alores id0nticos1 en la lista de campos especificados1 en un )nico registro. Para cada registro se crea un +alor sumario si se inclu,e una funci'n #C/ agregada1 como por e3emplo #UM o COUNT1 en la instrucci'n #./.CT. #u sinta6is es5 SELECT CAM-OS FROM TABLA B@ERE CRITERIO GROU- B> CAM-OS DEL GRU-O GROUP $% es opcional. /os +alores de resumen se omiten si no e6iste una funci'n #C/ agregada en la instrucci'n #./.CT. /os +alores null en los campos GROUP $% se agrupan , no se omiten. No o(stante1 los +alores null no se e+al)an en ninguna de las funciones #C/ agregadas. Finalidad de agrupar es *ue se pueda de !acer alg)n agregado SELECT AVG(SUM(ventas)) FROM ... NO es correcto, no se puede incluir una funcin de columna dentro de una funcin de columna

EJEM-LO 18: .l siguiente e3emplo retorna la cantidad de productos registrados para cada categor4a.
SELECT idCate)o!ia& COU'T(ID RODUCTO) AS Cantidad_p!od#ctos FROM RODUCTO GROU *% idCate)o!ia

EJEM-LO 1A: .l siguiente e3emplo retorna la cantidad de productos por pro+eedor para las categor4as D , E.
SELECT idCate)o!ia& Id !o"eedo!& COU'T(ID RODUCTO) AS cantidad_p!od#ctos FROM RODUCTO +,e!e idCate)o!ia I'(-&.) GROU *% idCate)o!ia&Id !o"eedo! ORDER *% idCate)o!ia

EJEM-LO 1A: .l siguiente e3emplo retorna el idGuia1 el n)mero de art4culos en cada pedido , el monto total de cada pedido de la ta(la Guia9detalle , ordenado por el c'digo de la guia en forma ascendente. EJEM-LO 1C: .l siguiente e3emplo retorna el Monto total despac!ado por producto , ordenado por el Monto total en forma descendente. NOTA: /a 1()+'na /" a*$+#a1i%n se puede indicar mediante un n('3$" /" 1()+'na o cual*uier e6presi'n +-lida (asada en una columna pero no se pueden utilizar los alias de campo. E,"'#)( : .st- permitido1 e*ui+aldr4a a agrupar las l4neas de pedido por precio unitario , sacar de cada precio unitario el importe total +endido. No est- permitido1 no se puede utilizar un alias campo.

SELECT i'#($t"D1ant 9 SUM(i'#($t"& FROM #"/i/(s GROU- B> i'#($t"D1ant SELECT i'#($t"D1ant AS #$"1i(9 SUM(i'#($t"& FROM #"/i/(s GROU- B> #$"1i(

C.

CLAUSULA @AVING Ei)t$a$ $"sF'"n"s (3t"ni/(s: .specifica una condici'n de ()s*ueda de un grupo o agregado. Normalmente1 &AV"NG se utiliza con la cl-usula GROUP $%. Cuando no se utiliza GROUP $%1 &AV"NG se comporta como la cl-usula F&.R..

&AV"NG es similar a F&.R.1 determina *u0 registros se seleccionan. Una +ez *ue los registros se !an agrupado utilizando GROUP $%1 &AV"NG determina cual de ellos se +an a mostrar. &aciendo uso del &AV"NG 5

EJEM-LO 1;: .l siguiente e3emplo retorna los productos cu,o monto total despac!ado es ma,or a DG.GG de la ta(la guia9detalle.
SELECT id !od#cto& SUM(p!ecioVenta(cantidad) AS MOnto Tota/ FROM GUIA_DETALLE GROU *% id !od#cto 0AVI'G SUM(p!ecioVenta(cantidad)1-2222 ORDER *% MOnto Tota/ DESC

EJEM-LO 1<: Para cada pedido en *ue se encuentre m-s de B art4culos1 recuperar el n)mero de pedido , el n)mero de productos pedidos o +endidos.
SELECT IdG#ia& COU'T(Id !od#cto) AS 'RO_ RODUCTOS& s#3( !ecioVenta(Cantidad)as IM ORTE FROM d4o5GUIA_DETALLE GROU *% IdG#ia 0AVI'G COU'T(Id !od#cto)162 ORDER *% IM ORTE

S-ar putea să vă placă și