Loading...
ÓÑÇéÁ´½Ó£º Pandora Charms Ugg Australia Boots Ghd Straighteners
             
 
¾ÆÀ̵ð
ÆÐ½º¿öµå

   
   


³¯Â¥ : 2009-08-12 ¿ÀÈÄ 1:54:57  Ãßõ : 1  Á¶È¸ : 1277

À̸§

±èÁ¾¿­

Á¦¸ñ

Casing VS Pivot

 

 

QueryÀÇ PerfomanceµîÀÇ ºÐ¼®Àº ÇÏÁö ¾Ê°Ú½À´Ï´Ù. 
Query¸¦ Â¥´Âµ¥ ÀÀ¿ëÇϽôµ¥¸¸... 



/*
--PIVOT PROTOTYPE

FROM table_source
PIVOT ( aggregate_function ( value_column )
		FOR pivot_column
			IN ( )
	   ) table_alias   
*/
USE ADVENTUREWORKS2008
GO 


SELECT 
	s.Name ShiftName,
	h.BusinessEntityID,
	d.Name DepartmentName
FROM 
	HumanResources.EmployeeDepartmentHistory h
INNER JOIN HumanResources.Department d 
	ON h.DepartmentID = d.DepartmentID
INNER JOIN HumanResources.Shift s 
	ON h.ShiftID = s.ShiftID
WHERE EndDate IS NULL AND
	d.Name IN ('Production', 'Engineering', 'Marketing')
ORDER BY ShiftName
GO 



--USING PIVOT 
SELECT 
	ShiftName,
	Production,
	Engineering,
	Marketing
FROM
	(SELECT 
		s.Name ShiftName,
		h.BusinessEntityID,
		d.Name DepartmentName
	FROM 
		HumanResources.EmployeeDepartmentHistory h
	INNER JOIN HumanResources.Department d 
		ON	h.DepartmentID = d.DepartmentID
	INNER JOIN HumanResources.Shift s 
		ON	h.ShiftID = s.ShiftID
	WHERE EndDate IS NULL AND
	d.Name IN ('Production', 'Engineering', 'Marketing')) AS a
PIVOT
	(
		COUNT(BusinessEntityID)
		FOR DepartmentName IN ([Production], [Engineering], [Marketing])
	) AS b
ORDER BY ShiftName
GO 

--USING CASE 
SELECT 
	ShiftName
	, Production = SUM(CASE WHEN DEPARTMENTNAME = 'PRODUCTION' THEN 1 ELSE 0 END) 
	, Engineering = SUM(CASE WHEN DEPARTMENTNAME = 'Engineering' THEN 1 ELSE 0 END) 
	, Marketing = SUM(CASE WHEN DEPARTMENTNAME = 'Marketing' THEN 1 ELSE 0 END) 
FROM
	(SELECT 
		s.Name ShiftName,
		h.BusinessEntityID,
		d.Name DepartmentName
	FROM 
		HumanResources.EmployeeDepartmentHistory h
	INNER JOIN HumanResources.Department d 
		ON	h.DepartmentID = d.DepartmentID
	INNER JOIN HumanResources.Shift s 
		ON	h.ShiftID = s.ShiftID
	WHERE EndDate IS NULL AND
	d.Name IN ('Production', 'Engineering', 'Marketing')) AS a
GROUP BY 
	SHIFTNAME 
go

 

 

Àǰß

À̸§

 À̸ÞÀÏ   ºñ¹Ð¹øÈ£

 

Àüü 1 °Ç

±èÁ¾¿­

2009-08-12

1

1278