【发布时间】:2019-04-02 10:58:44
【问题描述】:
我正在尝试确定客户在其最后交易日期产生的单次购买的最高销售额。
我尝试在订单日期和销售额上都使用最大功能,但是结果将显示客户在该日期进行的所有购买,而不仅仅是与最高销售额相关的一笔交易。如附图所示,这反过来为我提供了一个客户的多个客户密钥。下面是我使用的代码。
SELECT DISTINCT D.CustomerKey 'Customer Key',C.[OrderDate] 'Order Date',
MAX(C.salesamount) 'Max Sales Amount'
FROM [dbo].[FactInternetSales] C
INNER JOIN [dbo].[DimCustomer]
D ON C.CustomerKey = D.CustomerKey
WHERE C.[OrderDate]=
(SELECT max(C.orderdate) FROM [dbo[FactInternetSales] C
WHERE D.CustomerKey = C.CustomerKey)
GROUP BY D.customerkey,C.salesamount, C.OrderDate
ORDER BY D.customerkey
我希望结果显示三列:客户键 - 但每个客户只有一列、他们最后一次购买的订单日期和该日期的最高销售额。
【问题讨论】:
-
你有一些样本数据和这些数据的预期结果吗?