सकल कार्यों दिखाया गया है प्राप्त करने के लिए एक डमी पंक्ति का उत्सर्जन करता है सकते हैं इस प्रकार फिर से लिखा जाए: तालिका से एएस एक्स इनर जॉइन (चयन विभाजन कॉलम, समेकित विथआउटऑवरक्लोज़ (...) ... से ... जैसे y y x.PartitionColumns = y.PartitionColumns (यदि विभाजन कॉलम अनिवार्य हैं - न्यूल नहीं)।
उदाहरण:
SET STATISTICS IO ON;
SET NOCOUNT ON;
-- OP's query
SELECT sal,sum(sal) over(PARTITION BY empno)
FROM emp;
-- Reqwriten query
SELECT a.sal, b.SumSal
FROM emp a
INNER JOIN (SELECT EMPNO, SUM(sal) AS SumSal FROM emp GROUP BY EMPNO) b ON a.EMPNO = b.EMPNO;
परिणाम:
sal
----------- -----------
1 10
2 10
3 10
4 10
1 3
2 3
Table 'Worktable'. Scan count 3, logical reads 21, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'EMP'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
sal SumSal
----------- -----------
1 10
2 10
3 10
4 10
1 3
2 3
Table 'Worktable'. Scan count 3, logical reads 21, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
Table 'EMP'. Scan count 1, logical reads 2, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.
निष्पादन की योजना:
यह केवल पिछले में शामिल होने की व्याख्या करेगा:
के लिए स्पष्टीकरण पहले अनुभाग में प्रति-समूह प्रसंस्करण/Partitioning and the Common Subexpression Spool अनुभाग में पाया जा सकता है।
स्रोत
2013-04-14 15:00:05