2010-07-20 2 views
3

this question on Meta에 영감을 얻어 스택 Exchange 데이터 탐색기에 Questions Asked by Month의 총 수를 계산하는 쿼리와 Bounties Awarded by Month을 계산하는 쿼리를 작성했습니다. 하나의 쿼리에서 결과를 얻을 수 있도록 이들을 어떻게 결합 할 수 있습니까? 하나의 보고서에 년, 월, 질문, 현상금 및 금액을보고 싶습니다.은 월별로 계산되는 두 개의 쿼리를 결합합니다

질문이 게시물 테이블 PostTypeId = 1에 기록되어 있지만, 상금은 VoteTypeId는 =

+0

나는이 작업을 수행하는 일반적인 방법을 결코 사용할 수 없습니다. 결국 임시 테이블을 만들고 수정합니다. –

답변

4

9. 내가 SO 데이터 탐색기로 근무 한 적이없는 메모장 &이 쓴 투표 테이블에 기록됩니다.

select Isnull(V.Year, P.Year) As Year, 
Isnull(V.Month, P.Month) As Month, 
Isnull(V.Bounties, 0) As Bounties, 
Isnull(V.Amount,0) As Amount , 
P.Questions 
FROM 
(
select 
datepart(year, Posts.CreationDate) Year, 
datepart(month, Posts.CreationDate) Month, 
count(Posts.Id) Questions 
from Posts 
where PostTypeid = 1 -- 1 = Question 
group by datepart(year, Posts.CreationDate), datepart(month, Posts.CreationDate) 
) AS P 
left JOIN 
(
select 
datepart(year, Votes.CreationDate) Year, 
datepart(month, Votes.CreationDate) Month, 
count(Votes.Id) Bounties, 
sum(Votes.BountyAmount) Amount 
from Votes 
where VoteTypeId = 9 -- 9 = BountyAwarded 
group by datepart(year, Votes.CreationDate), datepart(month, Votes.CreationDate) 
) AS V 
ON P.Year = V.Year AND P.Month = V.Month 
order by P.Year, P.Month 
+0

SEDE에서 실행하려고하면 시간이 초과됩니다. 나는이 질문을 게시하기 전에 거의 똑같은 것을 시도했다. 유일한 차이점은 Votes.CreationDate에서 그룹화하고 주문한 것입니다. 적어도 다른 누군가가 똑같은 것을 내면 내 초기 시도가 완전히 어리석지 않다는 것을 압니다. :) –

+0

업데이트 됨. 확인해주십시오. – shahkalpesh

+0

당신이 두 번째 시도에서 그것을 못 박는 것처럼 보입니다. 고맙습니다! 이 이름을 SEDE에 저장 하시겠습니까? 아니면 원본을 편집 할 수 있습니까? –

관련 문제