2010-01-21 5 views
1

내가 SQL Server 2008에서 오전 나는 다음과 같은 형태의 WA 메트릭을 포함하는 테이블이와 집계 의미 BY GROUP 그래서 :SQL 서버 : PIVOT 연산자

2009-07-25 00:00:00.000 2009-07-26 00:00:00.000 New Visitor  221 
2009-07-25 00:00:00.000 2009-07-26 00:00:00.000 Unique Visitors 225 
2009-07-25 00:00:00.000 2009-07-26 00:00:00.000 Return Visitors 0 
2009-07-25 00:00:00.000 2009-07-26 00:00:00.000 Repeat Visitors 22 
2009-07-26 00:00:00.000 2009-07-27 00:00:00.000 New Visitor  263 
2009-07-26 00:00:00.000 2009-07-27 00:00:00.000 Unique Visitors 269 
2009-07-26 00:00:00.000 2009-07-27 00:00:00.000 Return Visitors 4 
2009-07-26 00:00:00.000 2009-07-27 00:00:00.000 Repeat Visitors 38 

일별로 그룹화하고 메트릭을 행 형식으로 피벗 싶습니다. PIVOT 연산자를 사용하는 예제는 SUMMAX 집계 함수를 기반으로하는 집계 만 표시 할 수 있습니다. 아마도 나는 PIVOT 운영자에게 GROUP BY 의미를 전달해야합니다. 참고 :이를 달성하는 방법에 대한 명확한 예/문서를 찾을 수 없습니다. 누군가가이 구문의 PYOT 연산자을 사용하여 의 올바른 구문을 게시 할 수 있습니까?

피봇과 함께 할 수없는 경우 - 우아한 방법으로 쿼리를 작성할 수 있습니까? 그렇지 않다면 전 환 형식으로 데이터를 생성해야합니다.

후 응답 편집 :

나는 (내가 구문 해킹 고려 있도록 지금까지) 피벗 연산자 unelegant 인 결론에 도달했다 - 나는 전치의 데이터를 생성하여 문제를 해결 한 유행. 나는 의견을 환영한다.

답변

1

나는 당신이 원하는 결과를 잘 모르겠어요하지만이 하루 줄 수 있습니다 :

CREATE TABLE #VistitorStat 
(
datelow datetime, 
datehigh datetime, 
name varchar(255), 
cnt int 
) 


insert into #VistitorStat 
     select '2009-07-25 00:00:00.000','2009-07-26 00:00:00.000', 'New Visitor',  221 
union select '2009-07-25 00:00:00.000',' 2009-07-26 00:00:00.000', 'Unique Visitors', 225 
union select '2009-07-25 00:00:00.000',' 2009-07-26 00:00:00.000', 'Return Visitors', 0 
union select '2009-07-25 00:00:00.000',' 2009-07-26 00:00:00.000', 'Repeat Visitors', 22 
union select '2009-07-26 00:00:00.000',' 2009-07-27 00:00:00.000', 'New Visitor' , 263 
union select '2009-07-26 00:00:00.000',' 2009-07-27 00:00:00.000', 'Unique Visitors', 269 
union select '2009-07-26 00:00:00.000',' 2009-07-27 00:00:00.000', 'Return Visitors', 4 
union select '2009-07-26 00:00:00.000',' 2009-07-27 00:00:00.000', 'Repeat Visitors', 38 


select * from #VistitorStat 
pivot (
    sum(cnt) 
    for name in ([New Visitor],[Unique Visitors],[Return Visitors], [Repeat Visitors]) 

) p 
+0

(+1) 네, 트릭을했다. 문법은 매우 이상합니다. 그것은 이해가되지 않습니다. 나는'cnt' 값을 추가하고 싶지 않습니다. 아직 작동합니다 : D. –