T-SQL按ID计算所有行和组

R3T*_*ech 1 sql sql-server group-by average

我有一点sql的问题.我需要一个查询的帮助,其中可以通过id计算所有行和组.我需要这个,因为我需要获得登录的平均值.

表有这个:MRr,日期

MNr 3 => 5个条目

MNr 4 => 2个条目

MNr 5 => 7个条目

现在我需要得到所有MNr,条目数超过所有平均值的50%.像:(5+2+7)/3 = 4,666并且结果是MNr 3和MNr 5.

我尝试过这样的东西,AVG(COUNT(date))但它不起作用.

我希望你们知道我的意思......很难为我解释对不起.

格尔茨

Gor*_*off 5

您似乎希望MNR具有超过MNR的平均登录次数.这是一个使用窗口函数的方法:

select mnr, cnt
from (select mnr, count(*) as cnt, avg(1.0*count(*)) over () as avg
      from table t
      group by mnr
     ) t
where cnt > avg;
Run Code Online (Sandbox Code Playgroud)