forked from docs/doc-exports
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
310 lines
67 KiB
HTML
310 lines
67 KiB
HTML
<a name="EN-US_TOPIC_0000001098671084"></a><a name="EN-US_TOPIC_0000001098671084"></a>
|
||
|
||
<h1 class="topictitle1">Window Functions</h1>
|
||
<div id="body8662426"><p id="EN-US_TOPIC_0000001098671084__p183911130250">Regular aggregate functions return a single value calculated from values in a row, or group all rows into a single output row. Window functions perform a calculation across a set of rows and return a value for each row.</p>
|
||
<ul id="EN-US_TOPIC_0000001098671084__ul162318212341"><li id="EN-US_TOPIC_0000001098671084__li14708636173419">A window function call represents the application of an aggregate-like function over some portion of the rows selected by a query. Therefore, aggregate functions (<a href="dws_06_0046.html">Aggregate Functions</a>) can also be used as window functions. In addition, window functions are able to scan all the rows and divide the query rows into a partition by using the <strong id="EN-US_TOPIC_0000001098671084__b195104217326">PARTITION BY</strong> clause.</li><li id="EN-US_TOPIC_0000001098671084__li561304918313">Column-store tables support only the window functions <strong id="EN-US_TOPIC_0000001098671084__b574162512202">rank (expression)</strong> and <strong id="EN-US_TOPIC_0000001098671084__b1458631192013">row_number (expression)</strong> and the aggregate functions <strong id="EN-US_TOPIC_0000001098671084__b374362581517">sum</strong>, <strong id="EN-US_TOPIC_0000001098671084__b15657304158">count</strong>, <strong id="EN-US_TOPIC_0000001098671084__b441017325155">avg</strong>, <strong id="EN-US_TOPIC_0000001098671084__b4266143581516">min</strong>, and <strong id="EN-US_TOPIC_0000001098671084__b174123817151">max</strong>. Row-store tables do not have such restrictions.</li><li id="EN-US_TOPIC_0000001098671084__li97081436113412">Invoking a window function requires special syntax using the <strong id="EN-US_TOPIC_0000001098671084__b17358145143315">OVER</strong> clause to specify a window. The <strong id="EN-US_TOPIC_0000001098671084__b1714121216334">OVER</strong> clause is used for grouping data and sorting the elements in a group. Window functions are used for generating sequence numbers for the values in the group.</li><li id="EN-US_TOPIC_0000001098671084__li827614511036"><strong id="EN-US_TOPIC_0000001098671084__b842352706153643">order by</strong> in a window function must be followed by a column name. If it is followed by a number, the number is processed as a constant value and the target column is not ranked.</li></ul>
|
||
<div class="section" id="EN-US_TOPIC_0000001098671084__section20427155155215"><h4 class="sectiontitle">Syntax of a Window Function</h4><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen197441416641"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">function_name</span><span class="w"> </span><span class="p">([</span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">]])</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">window_definition</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">function_name</span><span class="w"> </span><span class="p">([</span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">...</span><span class="w"> </span><span class="p">]])</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="n">window_namefunction_name</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="n">window_definition</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">function_name</span><span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="w"> </span><span class="n">window_name</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001098671084__p774410160418"><strong id="EN-US_TOPIC_0000001098671084__b1062694973112">window_definition</strong> is defined as follows:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen67441616648"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="p">[</span><span class="w"> </span><span class="n">existing_window_name</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">expression</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="k">ASC</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">DESC</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">NULLS</span><span class="w"> </span><span class="err">{</span><span class="w"> </span><span class="k">FIRST</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">LAST</span><span class="w"> </span><span class="err">}</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[,</span><span class="w"> </span><span class="p">...]</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">frame_clause</span><span class="w"> </span><span class="p">]</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001098671084__p137445168414"><strong id="EN-US_TOPIC_0000001098671084__b95489411710">frame_clause</strong> is defined as follows:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen8744016741"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="p">[</span><span class="w"> </span><span class="n">RANGE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ROWS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="n">frame_start</span><span class="w"> </span><span class="p">[</span><span class="w"> </span><span class="n">RANGE</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">ROWS</span><span class="w"> </span><span class="p">]</span><span class="w"> </span><span class="k">BETWEEN</span><span class="w"> </span><span class="n">frame_start</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">frame_end</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
<p id="EN-US_TOPIC_0000001098671084__p1223318232547">You can use <strong id="EN-US_TOPIC_0000001098671084__b1838212231332">RANGE</strong> and <strong id="EN-US_TOPIC_0000001098671084__b13456113712338">ROWS</strong> to specify the window frame. <strong id="EN-US_TOPIC_0000001098671084__b8108531131617">ROWS</strong> specifies the window in physical units (rows). <strong id="EN-US_TOPIC_0000001098671084__b18001446163315">RANGE</strong> specifies the window as a logical offset.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__p11672141313412">In <strong id="EN-US_TOPIC_0000001098671084__b26907464348">RANGE</strong> and <strong id="EN-US_TOPIC_0000001098671084__b149141149143410">ROWS</strong>, you can use <strong id="EN-US_TOPIC_0000001098671084__b319517103519">BETWEEN</strong> <em id="EN-US_TOPIC_0000001098671084__i1467413443516">frame_start</em> <strong id="EN-US_TOPIC_0000001098671084__b127558163514">AND</strong> <em id="EN-US_TOPIC_0000001098671084__i10146141193518">frame_end</em> to specify the window's first and last rows. If <em id="EN-US_TOPIC_0000001098671084__i176601453163519">frame_end</em> is left blank, it defaults to <strong id="EN-US_TOPIC_0000001098671084__b133686232362">CURRENT ROW</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__p1463514155418">The value options of <strong id="EN-US_TOPIC_0000001098671084__b17457173017377">BETWEEN frame_start AND frame_end</strong> are as follows:</p>
|
||
<ul id="EN-US_TOPIC_0000001098671084__ul12235137135416"><li id="EN-US_TOPIC_0000001098671084__li82352735416"><strong id="EN-US_TOPIC_0000001098671084__b1145513715375">CURRENT ROW</strong>: The current row is used as the window frame's start or end point.</li><li id="EN-US_TOPIC_0000001098671084__li723518716549"><em id="EN-US_TOPIC_0000001098671084__i175722003392">N</em> <strong id="EN-US_TOPIC_0000001098671084__b15313420391">PRECEDING</strong>: The window frame starts from the <em id="EN-US_TOPIC_0000001098671084__i58831913134213">n</em>th row to the current row.</li><li id="EN-US_TOPIC_0000001098671084__li3975211184611"><strong id="EN-US_TOPIC_0000001098671084__b136975010438">UNBOUNDED PRECEDING</strong>: The window frame starts at the first row of the partition.</li><li id="EN-US_TOPIC_0000001098671084__li3235177145410"><em id="EN-US_TOPIC_0000001098671084__i20711428114619">N</em> <strong id="EN-US_TOPIC_0000001098671084__b87415281464">FOLLOWING</strong>: The window frame starts from the current row to the <em id="EN-US_TOPIC_0000001098671084__i157492874616">n</em>th row.</li><li id="EN-US_TOPIC_0000001098671084__li18235173544"><strong id="EN-US_TOPIC_0000001098671084__b121643412598">UNBOUNDED FOLLOWING</strong>: The window frame ends with the last row of the partition.</li></ul>
|
||
<p id="EN-US_TOPIC_0000001098671084__p19599219114"><em id="EN-US_TOPIC_0000001098671084__i1574410591903">frame_start</em> cannot be <strong id="EN-US_TOPIC_0000001098671084__b181951235009">UNBOUNDED FOLLOWING</strong>, <em id="EN-US_TOPIC_0000001098671084__i123772214111">frame_end</em> cannot be <strong id="EN-US_TOPIC_0000001098671084__b350918261019">UNBOUNDED PRECEDING</strong>, and <em id="EN-US_TOPIC_0000001098671084__i188188301610">frame_end</em> cannot be earlier than <em id="EN-US_TOPIC_0000001098671084__i569804310110">frame_start</em>. For example, <strong id="EN-US_TOPIC_0000001098671084__b1887632410212">RANGE BETWEEN CURRENT ROW AND </strong><em id="EN-US_TOPIC_0000001098671084__i785120222216">value</em><strong id="EN-US_TOPIC_0000001098671084__b28763247212"> PRECEDING</strong> is not allowed.</p>
|
||
</div>
|
||
<div class="section" id="EN-US_TOPIC_0000001098671084__section19918112165214"><h4 class="sectiontitle">Window Functions</h4><ul id="EN-US_TOPIC_0000001098671084__uee27d446cbe94dbf9c906ee091671421"><li id="EN-US_TOPIC_0000001098671084__l4e4bb402053a4f76844d4af9d25d95aa">RANK()<p id="EN-US_TOPIC_0000001098671084__a91067a3b3e6d438d9f5b9b41d6272ca7"><a name="EN-US_TOPIC_0000001098671084__l4e4bb402053a4f76844d4af9d25d95aa"></a><a name="l4e4bb402053a4f76844d4af9d25d95aa"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b842352706135820">RANK</strong> function is used for generating non-consecutive sequence numbers for the values in each group. The same values have the same sequence number.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a0b0611b0817141138c66e1159e24f106">Return type: bigint</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a3b7099a9ab0d45dea5d3a889faf86d20">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen1423352882819"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">rank</span><span class="p">()</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rank</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__lb542fbf4129c41d199166f86517ae7a5">ROW_NUMBER()<p id="EN-US_TOPIC_0000001098671084__ae95552ff54334ca09415c4c996ecf3d3"><a name="EN-US_TOPIC_0000001098671084__lb542fbf4129c41d199166f86517ae7a5"></a><a name="lb542fbf4129c41d199166f86517ae7a5"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b842352706135830">ROW_NUMBER</strong> function is used for generating consecutive sequence numbers for the values in each group. The same values have different sequence numbers.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a230c100d82bf4540ad930e8ef6251952">Return type: bigint</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__aec6e4b9670b94766a2e25e55457e02b6">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen10591410163212"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">Row_number</span><span class="p">()</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">row_number</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">4</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l697dfef555ce4352b0ee6f9039dc8fe6">DENSE_RANK()<p id="EN-US_TOPIC_0000001098671084__a5957b99b49154c4ea7030b132a3fa4d4"><a name="EN-US_TOPIC_0000001098671084__l697dfef555ce4352b0ee6f9039dc8fe6"></a><a name="l697dfef555ce4352b0ee6f9039dc8fe6"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b84235270614042">DENSE_RANK</strong> function is used for generating consecutive sequence numbers for the values in each group. The same values have the same sequence number.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a4a16d49e385047e5b4597d77e456a469">Return type: bigint</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a8d44a115881740868a1d42f1a93eae37">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen1436134933314"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">dense_rank</span><span class="p">()</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">dense_rank</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__lb4b23c2533664e14aa5cd6da07c4e1f8">PERCENT_RANK()<p id="EN-US_TOPIC_0000001098671084__abb6168a24d764e68a3bb1fee09f14518"><a name="EN-US_TOPIC_0000001098671084__lb4b23c2533664e14aa5cd6da07c4e1f8"></a><a name="lb4b23c2533664e14aa5cd6da07c4e1f8"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b84235270614218">PERCENT_RANK</strong> function is used for generating corresponding sequence numbers for the values in each group. That is, the function calculates the value according to the formula Sequence number = (<strong id="EN-US_TOPIC_0000001098671084__b84235270614258">Rank</strong> – 1)/(<strong id="EN-US_TOPIC_0000001098671084__b84235270614420">Total rows</strong> – 1). <strong id="EN-US_TOPIC_0000001098671084__b842352706165459">Rank</strong> is the corresponding sequence number generated based on the <strong id="EN-US_TOPIC_0000001098671084__b84235270614356">RANK</strong> function for the value and <strong id="EN-US_TOPIC_0000001098671084__b842352706165615">Total rows</strong> is the total number of elements in a group.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a1572eced199d4eb2824966a72e259c5e">Return type: double precision</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__aa890ac68d66642809b069f6705dc391a">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen16672161523516"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">percent_rank</span><span class="p">()</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">percent_rank</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">666666666666667</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">666666666666667</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__leba8e4fa8c6644898a84c79a67ffd25f">CUME_DIST()<p id="EN-US_TOPIC_0000001098671084__ae16f44715c804f2fb3a90f0b2c047d98"><a name="EN-US_TOPIC_0000001098671084__leba8e4fa8c6644898a84c79a67ffd25f"></a><a name="leba8e4fa8c6644898a84c79a67ffd25f"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b84235270614522">CUME_DIST</strong> function is used for generating accumulative distribution sequence numbers for the values in each group. That is, the function calculates the value according to the following formula: Sequence number = Number of rows preceding or peer with current row/Total rows.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__aaca4c632c2ff4dcc9bd143a1cf9a3a5b">Return type: double precision</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__afbe1a2dd37f14e7ebc2e39f05c9efe48">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen1431154436"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">cume_dist</span><span class="p">()</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="n">e_dim</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">cume_dist</span><span class="w"></span>
|
||
<span class="c1">-------+------------+-----------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">5</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="p">.</span><span class="mi">5</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l127bdfd391604604bce0c54cf92364c7">NTILE(num_buckets integer)<p id="EN-US_TOPIC_0000001098671084__ae1071e726aaf433983144c4a2ddfcf2d"><a name="EN-US_TOPIC_0000001098671084__l127bdfd391604604bce0c54cf92364c7"></a><a name="l127bdfd391604604bce0c54cf92364c7"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b842352706162211">NTILE</strong> function is used for equally allocating sequential data sets to the buckets whose quantity is specified by <strong id="EN-US_TOPIC_0000001098671084__b842352706162335">num_buckets</strong> according to <strong id="EN-US_TOPIC_0000001098671084__b842352706162540">num_buckets integer</strong> and allocating the bucket number to each row. Divide the partition as equally as possible.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a40da4e042f5c49959dfbf122a9bbfed0">Return type: integer</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a31d139a4fdf24754837b3b0a2c77e0f1">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen33723531435"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">ntile</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ntile</span><span class="w"></span>
|
||
<span class="c1">-------+------------+-------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__lc9bdff5ee163424cb55445dd85a5fc1e">LAG(value any [, offset integer [, default any ]])<p id="EN-US_TOPIC_0000001098671084__a384894e02a08424cb4c328fba0b48901"><a name="EN-US_TOPIC_0000001098671084__lc9bdff5ee163424cb55445dd85a5fc1e"></a><a name="lc9bdff5ee163424cb55445dd85a5fc1e"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b842352706162813">LAG</strong> function is used for generating lag values for the corresponding values in each group. That is, the value of the row obtained by moving forward the row corresponding to the current value by <strong id="EN-US_TOPIC_0000001098671084__b842352706162951">offset</strong> (integer) is the sequence number. If the row does not exist after the moving, the result value is the default value. If omitted, <strong id="EN-US_TOPIC_0000001098671084__b953710042114528">offset</strong> defaults to <strong id="EN-US_TOPIC_0000001098671084__b384507136114528">1</strong> and <strong id="EN-US_TOPIC_0000001098671084__b909367716114528">default</strong> to <strong id="EN-US_TOPIC_0000001098671084__b411980818114528">null</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__acff3ee1ba53c4526ae99c74d6c0c0c96">Return type: same as the parameter type</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__ab1a2f09ad920403a8ac433f8fc100564">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen1678213544410"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">lag</span><span class="p">(</span><span class="n">d_mon</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="k">null</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">lag</span><span class="w"></span>
|
||
<span class="c1">-------+------------+-----</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l987ba41e38214078a53c1d01aeabd885">LEAD(value any [, offset integer [, default any ]])<p id="EN-US_TOPIC_0000001098671084__a916a02ed6cb54395bf9662824c5560ab"><a name="EN-US_TOPIC_0000001098671084__l987ba41e38214078a53c1d01aeabd885"></a><a name="l987ba41e38214078a53c1d01aeabd885"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b84235270616322">LEAD</strong> function is used for generating leading values for the corresponding values in each group. That is, the value of the row obtained by moving backward the row corresponding to the current value by <strong id="EN-US_TOPIC_0000001098671084__b842352706163530">offset</strong> (integer) is the sequence number. If the number of rows after the moving exceeds the total number for the current group, the result value is the default value. If omitted, <strong id="EN-US_TOPIC_0000001098671084__b842352706163652">offset</strong> defaults to <strong id="EN-US_TOPIC_0000001098671084__b842352706163658">1</strong> and <strong id="EN-US_TOPIC_0000001098671084__b84235270616374">default</strong> to <strong id="EN-US_TOPIC_0000001098671084__b84235270616378">null</strong>.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__aa72d630d4c7a4b3599b3427dff322c82">Return type: same as the parameter type</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__affaf550ed6ec4f1798781a00f3aebc01">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen176832917453"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">lead</span><span class="p">(</span><span class="n">d_week_seq</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">lead</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l746b5380146241b3bad6e0a889b2350e">FIRST_VALUE(value any)<p id="EN-US_TOPIC_0000001098671084__a004b839354a647b0b3e9e79c98e5d8c8"><a name="EN-US_TOPIC_0000001098671084__l746b5380146241b3bad6e0a889b2350e"></a><a name="l746b5380146241b3bad6e0a889b2350e"></a>Description: The <strong id="EN-US_TOPIC_0000001098671084__b196961930717">FIRST_VALUE</strong> function is used for returning the first value of each group.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a91699a36d7ad41988e3028f80051c2da">Return type: same as the parameter type</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a233d08cea87a467c87e41ccc0f775cd1">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen1998418497452"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">first_value</span><span class="p">(</span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">first_value</span><span class="w"></span>
|
||
<span class="c1">-------+------------+-------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l6081045ddd9747b6947129d3ebece0f2">LAST_VALUE(value any)<p id="EN-US_TOPIC_0000001098671084__aa1b04504cf054ae1828934a46289cbc6"><a name="EN-US_TOPIC_0000001098671084__l6081045ddd9747b6947129d3ebece0f2"></a><a name="l6081045ddd9747b6947129d3ebece0f2"></a>Description: Returns the last value of each group.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__aec58b0935b1a4210898aa5257342e7c9">Return type: same as the parameter type</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__a0762d838704f4564bde0690ab16fe802">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen19365172904615"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">last_value</span><span class="p">(</span><span class="n">d_mon</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">last_value</span><span class="w"></span>
|
||
<span class="c1">-------+------------+------------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li><li id="EN-US_TOPIC_0000001098671084__l61fcf38188424c488063a462e4761073">NTH_VALUE(value any, nth integer)<p id="EN-US_TOPIC_0000001098671084__abbcda6999c7245068fde840076793308"><a name="EN-US_TOPIC_0000001098671084__l61fcf38188424c488063a462e4761073"></a><a name="l61fcf38188424c488063a462e4761073"></a>Description: The <em id="EN-US_TOPIC_0000001098671084__i77509711514">n</em>th row for a group is the returned value. If the row does not exist, <strong id="EN-US_TOPIC_0000001098671084__b84235270617511">NULL</strong> is returned by default.</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__ad4273c4dd6ae4f59a269a315a66db2f0">Return type: same as the parameter type</p>
|
||
<p id="EN-US_TOPIC_0000001098671084__ab216bdbae7a7442ca8198e30988addbb">For example:</p>
|
||
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001098671084__screen95911758402"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||
<span class="normal"> 2</span>
|
||
<span class="normal"> 3</span>
|
||
<span class="normal"> 4</span>
|
||
<span class="normal"> 5</span>
|
||
<span class="normal"> 6</span>
|
||
<span class="normal"> 7</span>
|
||
<span class="normal"> 8</span>
|
||
<span class="normal"> 9</span>
|
||
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">d_mon</span><span class="p">,</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">,</span><span class="w"> </span><span class="n">nth_value</span><span class="p">(</span><span class="n">d_week_seq</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="n">OVER</span><span class="p">(</span><span class="n">PARTITION</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">d_week_seq</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">reason_date</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="k">AND</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">6</span><span class="w"> </span><span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
|
||
<span class="w"> </span><span class="n">d_mon</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">d_week_seq</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">nth_value</span><span class="w"></span>
|
||
<span class="c1">-------+------------+-----------</span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">3</span><span class="w"></span>
|
||
<span class="p">(</span><span class="mi">6</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span><span class="w"></span>
|
||
</pre></div></td></tr></table></div>
|
||
|
||
</div>
|
||
</li></ul>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<div class="familylinks">
|
||
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_06_0027.html">Functions and Operators</a></div>
|
||
</div>
|
||
</div>
|
||
|