问题描述
我必须创建一个查询,以查找每个客户的年度移动数据使用总量。我最终得到了正确的答案,但我认为它根本没有效率。
SELECT
[Customer Build].CustomerID,[Mobile Data Usage].DataYear,SUM([Mobile Data Usage].MPDataByGB)
+ COUNT([Phone Number Pool].PhoneNumber)
- COUNT([Phone Number Pool].PhoneNumber) AS SumOfMPDataByGB
如何将客户 ID 与电话号码结合起来,同时又不必对电话号码使用重复计数功能?
解决方法
假设所有表都基于 CustomerID 连接,您可以对 MPDataByGB 和 GROUP BY 其他列进行 SUM。
SELECT A.[CustomerID],B.[PhoneNumber],C.[DataYear],SUM(C.MPDataByGB) AS SumOfMPDataByGB
FROM [Customer Build] AS A
JOIN [Phone Number Pool] AS B
ON A.[CustomerID] = B.[CustomerID]
JOIN [Mobile Data Usage] AS C
ON A.[CustomerID] = B.[CustomerID]
GROUP BY A.[CustomerID],C.[DataYear]