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)