次の計算に基づいて加重平均を計算しようとしています。SQL Serverで加重平均を計算する
私はこのようになりますデータセットを持っている:私は、時間差に基づいて平均値を計算する必要が
item | Date Sent | Date Received
1 | 2 Feb 10am | 3 Feb 10am
1 | 6 Feb 11am | 6 Feb 12pm
2 | 2 Feb 10am | 3 Feb 10am
2 | 6 Feb 11am | 6 Feb 12pm
は意味切り捨て:
Time Diff | Count |
1 | 2 |
12 | 2 |
だから、だろう、この場合、次のとおりです。
1 * 2 + 12 * 2/(12 + 1)
私はすでに集計テーブルを計算するためにSQLクエリを書いています。
select
floor(datediff(hh, dateSent, dateReceived)) as hrs,
count(item) as freq
from
table
group by
floor(datediff(hh, dateSent, dateReceived))
having
floor(datediff(hh, dateSent, dateReceived)) < 100
order by
floor(datediff(hh, dateSent, dateReceived)) asc;
サブクエリを行う必要がありますか?私は堪能ではなく、私は試してみましたが、構文エラーが発生し続けています。
誰かが加重平均を得るためにSQLクエリを手伝ってもらえますか?
私の推測では、あなたが実際にこのような方法で、IDによってグループ化したいです。 (時間、日付、日付、受信日))<100 ORDER BY 2; 'または何かを指定している項目から、項目を選択し、hrs = AVG(DATEDIFF(HOUR、dateSent、dateReceived))、freq =そんな? – ZLK
私は実際に加重平均を求めていますが、これはサブクエリの一部になると思っていましたが、それを達成することはできませんでした。なぜ2で注文したのですか? –
「加重平均」とは何を意味するのかよくわかりません。どのように "重み付け"されていますか?また、「order by 2」のことは、単に「第2列による注文」と言っても、怠惰なショートハンドでした。 – ZLK