在sql server 2008中使用相同的两列值计算表中的行

Shr*_*nil 1 sql sql-server-2008

下面是我的表结构和数据......

id   receiver   caller category   playfilename
1    4564165    42444    4        skdjfls.wav
2    4444444    42444    2        dfkjsanf.wav
3    4444444    42444    2        kldsfjas.wav
4    4845455    42444    3        dsklfjal.wav
5    4542122    42444    2        dfssadfs.wav
6    4535656    42444    2        dsfjklsaj.wav
Run Code Online (Sandbox Code Playgroud)

在这里,我想计算具有相同接收器和类别列数据的行数.例如,在上面的表中返回一个额外的选择列,总计数为2,其具有4444444接收器和类别2.类似地返回与接收器和调用者上的值匹配的其他行到具有count列的另一行,如下所示.

SELECT DISTINCT receiver, caller, category, playfilename, count from tbl_record .... ...
Run Code Online (Sandbox Code Playgroud)

我不知道怎么能这样做.在sql server中有任何函数来解决这个问题,或者我使用了类似存储过程的东西

gbn*_*gbn 6

这个怎么样?

SELECT
    receiver, caller, category, playfilename,
    COUNT(*) OVER (PARTITION BY receiver, category) AS CountPerReceivercategoryGroup
from tbl_record
Run Code Online (Sandbox Code Playgroud)