T-SQL 统计所有行并按id分组

T-SQL Count all rows and group by id

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

Table 有这个:MRr,日期

MNr 3 => 5 个条目

MNr 4 => 2 个条目

MNr 5 => 7 个条目

现在我需要计算条目数超过所有平均值 50% 的所有 MNr。 喜欢:(5+2+7)/3 = 4,666 结果是 MNr 3 和 MNr 5.

我用 AVG(COUNT(date)) 之类的东西试过了,但没用。

我希望你们明白我的意思...对不起,我很难解释。

问候

您似乎想要拥有超过 MNR 平均登录数的 MNR。这是一个使用 window 函数的方法:

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;

另一种解决方案:

select MRr, count(*) as _count
from mnr
group by MRr
having count(*) > (select count(*) / count(distinct mrr) * 1.0 from mnr)