3

ときどき SQL Server をいじっていると、 Can't use a window function on an aggregate. 私は SQL Server 2008 を使用しており、2012 ではより優れたウィンドウ関数機能が提供されていることを知っており、それらを頻繁に使用しているため、これはイライラします。しかし、時々私は次のようなことをします

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

これはうまくいきます。私はすでに me.patid でグループ化しているためだと思いますが、このようなウィンドウ関数をいつネストできるかについて、より明確な考えを持っている人はいますか?

4

1 に答える 1

3

ここではウィンドウ関数をネストしていません。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
于 2013-05-07T14:00:45.687 に答える