返回sql server中过去八周的平均存款和取款
我想写一个简单的查询,返回MyTable中的平均存款和赌注,但从今天开始的最后八周,并以dd/mm格式选择该周的第一天返回sql server中过去八周的平均存款和取款,sql,sql-server,Sql,Sql Server,我想写一个简单的查询,返回MyTable中的平均存款和赌注,但从今天开始的最后八周,并以dd/mm格式选择该周的第一天 SELECT [PlayerId], SUM(Aggr.DepositAmount) [Deposits], SUM(Aggr.DepositCount)
SELECT
[PlayerId],
SUM(Aggr.DepositAmount) [Deposits],
SUM(Aggr.DepositCount) [DepositCount],
SUM(Aggr.WithdrawalAmount) [Withdrawals],
SUM(Aggr.WithdrawalCount) [WithdrawalCount]
FROM [WarehouseMgmt].[FactPaymentAgr] Aggr
WHERE (TimeId BETWEEN @CurrentWeek AND @CurrentWeek7)
GROUP BY [PlayerId]
然后我会计算平均存款和取款
所以最终的结果我想成为这样的人
周,周格式为dd/mm,PlayerId,average depos,average depos,average decus我已经更新了我的查询,以符合您上次的要求
DECLARE @first_date DATETIME
SET @first_date = DATEADD(ww, -8, GETDATE())
SELECT T.week_number,
T.date_formatted,
T.playerID,
AVG(DepositAmount) AS avg_deposit,
AVG(WithdrawalAmount) AS avg_withdrawal
FROM
(SELECT
DATEPART(ww, timeID) AS week_number,
SUBSTRING(CONVERT(VARCHAR, timeID, 103), 1, 5) AS date_formatted,
PlayerID,
DepositAmount,
WithdrawalAmount)
FROM [WarehouseMgmt].[FactPaymentAgr] Aggr
WHERE TimeId >= @first_date) AS T
GROUP BY week_number,
date_formatted,
playerID
那么到底是什么问题呢?简单地用AVG()替换SUM()。参见编辑后的问题。我现在不确定语法,但这种方法是准确和优秀的