0
我有以下查詢來提取客戶的最近購買。出於性能方面的原因,我嘗試使用子查詢,但是我遇到了一堵牆,不斷收回所有客戶的訂單。我只需要每個客戶的最新消息。SQL Server:使此排名高效
SELECT *
FROM (SELECT od.*, ord.OrderName, ord.OrderDate, RowN =
Row_Number()
OVER (PARTITION BY ord.CustomerOrderGUID ORDER BY ord.OrderDate DESC)
FROM #OrderData od
JOIN CV3Orders ord ON ord.CustomerOrderGUID = od.CustomerOrderGUID
WHERE ord.ProductName = 'Product 10') rnk
WHERE rnk.RowN = 1
您能告訴我們您的樣品數據和預期結果嗎? –
我打算猜測'CustomerOrderguid'與customerId不同,而是OrderId。你有一個customerid列來「分區」而不是「CustomerOrderguid」嗎? – SqlZim
我的數據由訂購特定產品的客戶組成。客戶多次購買相同的產品,因此我試圖找到最有效的方式來隔離最近的購買並顯示最近的購買(以及來自該行的其他信息)。例如,如果我有一位過去購買3袋咖啡的顧客。我想要顯示最近購買的咖啡。我提交的查詢完美無缺,但運行需要很長時間。我看到,如果我可以用一個子查詢來做同樣的事情來縮短執行時間。 – DPool34