4
我想根據以下計算來計算加權平均數。在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: 'SELECT item,hrs = AVG(DATEDIFF(HOUR,dateSent,dateReceived)),freq = COUNT(*)FROM myTable GROUP BY項目HAVING AVG(DATEDIFF(HOUR,dateSent,dateReceived))<100 ORDER BY 2;'像那樣? – ZLK
我實際上想要得到加權平均數,我認爲這將是子查詢的一部分,但我沒有設法完成。你爲什麼要訂購2? –
我不確定你的意思是「加權平均」。它是如何「加權」的?另外,'2號'順序只是懶惰的短語,說「按第二列排序」。 – ZLK