子查询为我提供了每个代表每个月的总预付费激活,并且在这个子查询之外,我试图找到整个列的平均值,也是每个月的平均值。我如何为我正在寻找的内容正确编码?
有关更多详细信息,请参见下面的代码,但我希望它根据所有代表的不同 EOM 值对总预付 ACT 进行平均,以便我可以将单个代表的表现与给定月份的总平均值进行比较。
这是我当前的 SQL 代码和一些结果的片段:
SELECT
*
, AVG(PM.[Total Prepaid ACTs]) AS 'Average Prepaid'
FROM
(
SELECT
WT.repid
, ISNULL(SUM(NetPrePaidActivations), 0) AS 'Total Prepaid ACTs'
, ISNULL(SUM(NetPostpaidIncBYOD), 0) AS 'Total Postpaid ACTs'
, CAST(ROUND(ISNULL(SUM(AccessorySales), 0), 2) AS FLOAT) AS 'Total Acc Sales'
, ISNULL(SUM(AccessoryUnits), 0) AS 'Total Acc Units'
, EOMONTH(WT.ActivityDate, 0) AS 'EOM'
FROM
WalmartWSP.dbo.WalmartTransactions WT
LEFT JOIN
WalmartWSP.dbo.RepRoster RR
ON
WT.repid = RR.RepID
WHERE
WT.repid <> 0
AND
RR.RepHireDate BETWEEN '06-01-2022' AND '12-31-2022'
AND
WT.ActivityDate BETWEEN '06-01-2022' AND '12-31-2022'
GROUP BY
WT.repid
, EOMONTH(WT.ActivityDate, 0)
) PM --ProductivityMetrics
GROUP BY
PM.EOM
, PM.repid
, PM.[Total Acc Sales]
, PM.[Total Acc Units]
, PM.[Total Postpaid ACTs]
, PM.[Total Prepaid ACTs]
当前结果(结果中还有几列我为了可见性而遗漏了):
repid Total Prepaid ACTs EOM Average Prepaid
369928 5 2022-10-31 5
373049 17 2022-11-30 17
369579 0 2022-10-31 0
361235 22 2022-11-30 22
370359 6 2022-11-30 6
不是计算每个 EOM 的每个“总预付 ACT”的平均值,而是给我左侧的总预付 ACT 值,并且只对这一行求平均值。
所以我想要的结果如下:
repid Total Prepaid ACTs EOM Average Prepaid
369928 5 2022-10-31 2.5
373049 17 2022-11-30 15.0
369579 0 2022-10-31 2.5
361235 22 2022-11-30 15.0
370359 6 2022-11-30 15.0