উইন্ডোটিং ফাংশনগুলির সাথে আমার কিছু সহায়তা দরকার। আমি জানি আপনি একটি উইন্ডোর মধ্যে যোগফল এবং উইন্ডোর মধ্যে চলমান মোট গণনা করতে পারেন। তবে বর্তমানের সারিটি সহ মোট চলমান মোট অর্থাত্ চলমান মোট গণনা করা কি সম্ভব?
আমি ধরে নিলাম আপনার পক্ষে যুক্তি ROW
বা RANGE
তর্কটি ব্যবহার করা দরকার । আমি জানি একটি CURRENT ROW
বিকল্প আছে তবে আমার প্রয়োজন হবে CURRENT ROW - 1
যা অবৈধ সিনট্যাক্স। আমার ROW
এবং RANGE
তর্কগুলি সম্পর্কে জ্ঞান সীমিত তাই কোনও কৃতজ্ঞতা সহকারে গৃহীত হবে।
আমি জানি এই সমস্যার অনেক সমাধান আছে, কিন্তু আমি বুঝতে খোঁজ করছি ROW
, RANGE
আর্গুমেন্ট এবং আমি সমস্যা এই সঙ্গে কর্কশ করা যাবে অনুমান। আমি পূর্বের চলমান মোট গণনা করার একটি সম্ভাব্য উপায় অন্তর্ভুক্ত করেছি তবে আরও ভাল উপায় আছে কিনা তা অবাক করে দিয়েছি:
USE AdventureWorks2012
SELECT s.SalesOrderID
, s.SalesOrderDetailID
, s.OrderQty
, SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID) AS RunningTotal
, SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID
ORDER BY SalesOrderDetailID) - s.OrderQty AS PreviousRunningTotal
-- Sudo code - I know this does not work
--, SUM(s.OrderQty) OVER (PARTITION BY SalesOrderID
-- ORDER BY SalesOrderDetailID
-- ROWS BETWEEN UNBOUNDED PRECEDING
-- AND CURRENT ROW - 1)
-- AS SudoCodePreviousRunningTotal
FROM Sales.SalesOrderDetail s
WHERE SalesOrderID IN (43670, 43669, 43667, 43663)
ORDER BY s.SalesOrderID
, s.SalesOrderDetailID
, s.OrderQty