advertisement

Agrupando datos en SQL Server

100 %
0 %
advertisement
Information about Agrupando datos en SQL Server
Technology

Published on February 21, 2014

Author: juliancastiblanco

Source: slideshare.net

Description

en esta presentación encontrará la teoría básica de las funciones disponibles en SQL Server 2012 para agrupar información, también funciones avanzadas como pivot y anpivot tables.
advertisement

Querying Microsoft SQL Server 2012 Exam 70-461 Capítulo 5 – Grouping and Windowing Julián Castiblanco P. http://julycastiblanco.blogspot.com/ Julian_castiblancop@hotmail.com MCT-MCSA-MCITP-MCTS SQL Server 2008/2005 Líder ITPros-DC

Material de trabajo Windows Server 2012 trial http://www.microsoft.com/en-us/download/details.aspx?id=11093 SQL Server 2012 with SP1 trial http://www.microsoft.com/en-us/download/details.aspx?id=29066 AdventureWorks for SQL Server 2012 http://msftdbprodsamples.codeplex.com/releases/view/55330 Training kit SQL Server Querying Microsoft SQL Server 2012 – exam 70-461 http://www.amazon.com/Training-Kit-Exam-70-461Microsoft/dp/0735666059/ref=sr_1_1?ie=UTF8&qid=1359206206&sr=81&keywords=querying+microsoft+sql+server+2012+training+kit+exam+70-461

Agenda • Consultas Agrupadas • Pivot and Unpivot • Función de agregación especiales

Consultas Agrupadas Las consultas básicas nos ayudan a responder preguntas de detalle, por ejemplo qué clientes realizaron compras el día de hoy? O cuales facturas han sido vendidas en el mes y por qué valor. Las agrupaciones dan un sentido más analítico a las consultas, responden preguntas como, cuantos clientes tengo? Cuanto dinero he ganado/perdido en el transcurso del año por producto?

Consultas Agrupadas Funciones Distinct Having • • • • • Count() Sum() Average() Max() Min() Group by http://technet.microsoft.com/en-us/library/ms173454.aspx • • • • • stdev() stdevp() Grouping() Grouping_id() var()

Consultas Agrupadas A cuanto asciende el valor de las ordenes y cuantas ordenes fueron generadas en cada periodo del año 2005? SELECT DATENAME(MONTH,OrderDate) AS MES ,COUNT(*) AS NumeroOrdenes ,SUM(TOTALDUE) AS valorTotal FROM [Sales].[SalesOrderHeader] AS S WHERE YEAR(OrderDate)=2005 GROUP BY DATENAME(MONTH,OrderDate),MONTH(OrderDate) ORDER BY MONTH(OrderDate) asc

Consultas Agrupadas Cuantas órdenes fueron enviadas por cada uno de los métodos de transporte? --suma ordernes por compañía WITH Ordersbyshipper as( select ShipMethodID, COUNT(ShipMethodID) as ordersbyshipper from sales.SalesOrderHeader Group by ShipMethodID) --toma el nombre del metodo de transporte select a.[Name],Ordersbyshipper.ordersbyshipper from [Purchasing].[ShipMethod] a inner join Ordersbyshipper on a.[ShipMethodID]=Ordersbyshipper.[ShipMethodID]

Multiples Agrupaciones Las sentencias GROUPING SETS, CUBE, ROLLUP permiten obtener múltiples agrupaciones con una sola consulta. En las tres, se obtiene básicamente sumatorias de nivel jerárquico superior es decir, subtotales por cada una de las columnas de agrupación. GROUPING SETS es la más completa al permitir especificar que tipo de subtotales deben ser calculados. SELECT A.[ShipMethodID], YEAR(A.ShipDate) AS shipyear , COUNT(*) AS numorders FROM sales.SalesOrderHeader A where YEAR(ShipDate) is not null GROUP BY GROUPING SETS ( ( [ShipMethodID], YEAR(ShipDate) ) ,( [ShipMethodID]) ,( YEAR(ShipDate)) );

Pivot and Unpivot 1 2 3 1. Que quieres ver como filas 2. Que quieres ver como columnas, 3. Que información quieres ver en la intersección de ambas.

Pivot and Unpivot SELECT b.Name Territorio, C.City , COUNT(*) AS numorders FROM sales.SalesOrderHeader AS A INNER JOIN SALES.SalesTerritory AS B ON A.TerritoryID=b.TerritoryID INNER JOIN [Person].[Address] AS C ON A.ShipToAddressID=C.AddressID INNER JOIN [Person].[StateProvince] AS D ON C.StateProvinceID=D.StateProvinceID WHERE b.Name='France' GROUP BY b.Name, C.City;

Pivot and Unpivot 1 Territory 2 City 3 Quantity of orders by City

Pivot and Unpivot SELECT Territorio , [Paris], [Les Ulis], [Saint Ouen], [Orleans], [Colombes], [Orly] FROM (SELECT Territorio,City,numorders FROM ventasEnFrancia WHERE numorders>90) as SourceTable PIVOT ( SUM(numorders) FOR City IN ([Paris],[Les Ulis],[Saint Ouen],[Orleans],[Colombes],[Orly]) ) AS pivotTable;

Pivot and Unpivot Suponga que ahora, tiene esta tabla y desea volver las columnas a filas. A este proceso se le conoce como “unpivot”

Pivot and Unpivot SELECT Territorio, city,numorders FROM (SELECT territorio,[Paris],[Les Ulis],[Saint Ouen],[Orleans],[Colombes] ,[Orly] FROM #unpivotexample) as SourceTable UNPIVOT ( numorders FOR CITY IN ([Paris],[Les Ulis],[Saint Ouen],[Orleans],[Colombes] ,[Orly]) ) AS UNPVT;

Lección 3: Funciones de agregación Las funciones de agregación son las mismas vistas en la lección 1 (sum, count, avg, min, max) excepto porque se usan bajo la clausula OVER. “organice las ordenes bajo una secuencia numérica, agrupando la información por transportadora, país destino y nombre de cliente” SELECT b.ContactName,C.CompanyName, A.ShipCountry,O.value , SUM(O.value) OVER(PARTITION BY C.CompanyName, A.ShipCountry) as value , row_number() OVER(PARTITION BY C.CompanyName, A.ShipCountry, b.ContactNamE ORDER BY b.ContactNamE, O.value DESC) as value FROM Orders a inner join [dbo].[Customers] b on a.CustomerID=b.CustomerID INNER JOIN Shippers C ON A.ShipVia=C.ShipperID INNER JOIN valueForOrder O ON A.OrderID=O.OrderID

Funciones de agregación La función RANK, ROW_NUMBER, DENSE_RANK, NTILE, permite agregar nuevas columnas con secuenciales que pueden ser usados para tener un “consecutivo” de cada fila, que puede depender de un partición. SELECT A.CustomerID, A.SalesOrderNumber,ROUND(A.TotalDue,-3) AS VAL , row_number() OVER(ORDER BY ROUND(A.TotalDue,-3) DESC) as rownum , rank() OVER(ORDER BY ROUND(A.TotalDue,-3) DESC) as f_rank , dense_rank() OVER(ORDER BY ROUND(A.TotalDue,-3) DESC) as f_denserank , ntile(100) OVER(ORDER BY ROUND(A.TotalDue,-3) DESC) as f_tilegroup FROM sales.SalesOrderHeader a

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

SQL Server - Agrupando Datos - YouTube

SQL Server - Agrupando Datos ... Triggers en SQL Server de Microsoft - Duration: 25:52. Victor Hugo Cardenas Valenzuela 15,635 views. 25:52
Read more

DESARROLLA SOFTWARE: SQL Server - Agrupando datos

SQL Server - Agrupando datos ... y así podemos encontrar muchos casos en los que se necesita información estadística para tomar mejores ...
Read more

Datos Agrupados Group By en Sql Server (22-35) Bases de ...

Descarga aquí el material del curso, la base de datos, los códigos SQL, las diapositivas: http://www.incanatoit.com/2015/01/dat... En este ...
Read more

Usar PIVOT y UNPIVOT

Cuando se utilizan las palabras clave PIVOT o UNPIVOT en bases de datos actualizadas a SQL Server ... en SQL Server Management Studio, en el ...
Read more

UNIR CONSULTA SQL AGRUPANDO POR FECHA

UNIR CONSULTA SQL AGRUPANDO POR ... con las bases de datos y aplicaciones de SQL Server. 0 0 ... los totales de las dos tablas pero en un solo ...
Read more

SQL Server FAQ: Agrupando datos con WITH CUBE, WITH ROLLUP ...

SQL Server FAQ: Agrupando datos con WITH CUBE, WITH ROLLUP y GROUPING Volver a: ... en función de los datos contenidos en la tabla base), ...
Read more

Agrupando datos con WITH CUBE, WITH ROLLUP y GROUPING ...

Agrupando datos con WITH CUBE, ... en función de los datos contenidos en la tabla base), ... que esta funcionalidad existe desde SQL Server 2000 ...
Read more

Tipos de datos (Transact-SQL)

En SQL Server, cada columna, variable local, ... Los tipos de datos en SQL Server están organizados en las siguientes categorías: Numéricos exactos.
Read more

SQL Server 2012-SQL Server - Video-Trainings von ...

Crea bases de datos, ... peticiones con este curso video2brain de Microsoft SQL Server 2012, en el que verás el lenguaje SQL y sus operadores y ...
Read more