簡體   English   中英

T-SQL計算所有行並按ID分組

[英]T-SQL Count all rows and group by id

我對sql有一點問題。 我需要一個查詢來幫助,該查詢可以計算所有行並按ID分組。 我需要這個,因為我需要獲取平均登錄次數。

表格有:MRr,日期

MNr 3 => 5個條目

MNr 4 => 2個條目

MNr 5 => 7個條目

現在我需要得出所有MNr的條目數超過所有平均值的50%。 像: (5+2+7)/3 = 4,666 4,666,結果是MNr 3和MNr 5。

我嘗試使用AVG(COUNT(date))類的方法嘗試此操作,但是它不起作用。

我希望你們知道我的意思...對不起,我很難解釋。

格蕾茲

您似乎希望MNR擁有比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;

替代解決方案:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM