2013-05-07 6 views
3

때때로 SQL Server를 둘러 보며 Can't use a window function on an aggregate과 같은 오류가 발생합니다. 나는 SQL Server 2008을 가지고 있기 때문에 좌절감을 느낍니다. 2012 년에 더 나은 창 기능을 제공한다는 사실을 알고 있습니다. 그러나 가끔씩 나는SQL Server의 중첩 창 기능

select me.patid 
     ,COUNT(*) as eligibilityGapsNo 
     ,COUNT(*) over(partition by count(*)) 
from memberEligibility as me 
group by me.patid 

과 같이 작동하며 정상적으로 작동합니다. 나는 그것이 이미 나로 그룹화하고 있기 때문에 그것이라고 생각한다 .patid하지만 이처럼 윈도우 함수를 언제 네비게이션 할 수 있을지에 대해 누구보다 명확한 생각을 갖고 있는가?

답변

2

여기에 창 함수를 중첩하지 않습니다. 집계 함수 count(*)과 창 함수 count(*) over이 중첩됩니다.

창 함수에서 집계 함수를 중첩 할 수 있습니다. 그리고, 나는 그것을한다. 항상 좋은

select patid, eg, count(*) over (partition by egcnt) 
from (select me.patid, count(*) as egcnt 
     from memberEligibility me 
     group by me.patid 
    ) t 
+0

을보기 다른 사람의 입장을 듣고보고 : 그러나, 나는 중첩 집계 함수 그냥 나에게 "잘 보이지 않는"때문에 명확, 하위 쿼리로이 작성 찾아 – wootscootinboogie