forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Su, Xiaomeng <suxiaomeng1@huawei.com> Co-committed-by: Su, Xiaomeng <suxiaomeng1@huawei.com>
59 lines
8.4 KiB
HTML
59 lines
8.4 KiB
HTML
<a name="dli_08_0163"></a><a name="dli_08_0163"></a>
|
|
|
|
<h1 class="topictitle1">ROLLUP</h1>
|
|
<div id="body8662426"><div class="section" id="dli_08_0163__en-us_topic_0093946822_s51eb2456b68a4affac06fc5d51ffe9e3"><h4 class="sectiontitle">Function</h4><p id="dli_08_0163__en-us_topic_0093946822_a52fa62faaab644d7af74f74b3d84f8af">This statement is used to generate the aggregate row, super-aggregate row, and the total row. The statement can achieve multi-layer statistics from right to left and display the aggregation of a certain layer.</p>
|
|
</div>
|
|
<div class="section" id="dli_08_0163__en-us_topic_0093946822_s3ecddef6014c418b8dec5b959f43fb1e"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="dli_08_0163__screen16218143712502"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">attr_expr_list</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">table_reference</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">col_name_list</span>
|
|
<span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">ROLLUP</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0163__en-us_topic_0093946822_seea9e15c1e164066ad0238c6eff27b51"><h4 class="sectiontitle">Keyword</h4><div class="p" id="dli_08_0163__en-us_topic_0093946822_p1764185151513">ROLLUP is the expansion of GROUP BY. For example, <em id="dli_08_0163__i2594770601527"><strong id="dli_08_0163__b1136521241527">SELECT a, b, c, SUM(expression) FROM table GROUP BY a, b, c WITH ROLLUP;</strong></em> can be transformed into the following query statements:<ul id="dli_08_0163__en-us_topic_0093946822_u6c7f499dbf2d4d86880a955d04d999b3"><li id="dli_08_0163__en-us_topic_0093946822_li35091174113229">Counting the (a, b, c) combinations<div class="codecoloring" codetype="Sql" id="dli_08_0163__screen143781277515"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="p">,</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">table</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">c</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="dli_08_0163__en-us_topic_0093946822_li61811645113249">Counting the (a, b) combinations<div class="codecoloring" codetype="Sql" id="dli_08_0163__screen143141127155116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">table</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="n">b</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="dli_08_0163__en-us_topic_0093946822_li5517359211337">Counting the (a) combinations<div class="codecoloring" codetype="Sql" id="dli_08_0163__screen175931337115218"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
|
|
<span class="normal">2</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">a</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">table</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">a</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="dli_08_0163__en-us_topic_0093946822_li47581974113319">Total<div class="codecoloring" codetype="Sql" id="dli_08_0163__screen19494057115211"><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="k">SELECT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span><span class="w"> </span><span class="k">sum</span><span class="p">(</span><span class="n">expression</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="k">table</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0163__en-us_topic_0093946822_s42f6ba1742d2496fb8b66ac809935de9"><h4 class="sectiontitle">Precautions</h4><p id="dli_08_0163__en-us_topic_0093946822_a906f1a7485864566895353bb74a3f44b">The to-be-grouped table must exist. If this statement is used to group a table that does not exist, an error is reported.</p>
|
|
</div>
|
|
<div class="section" id="dli_08_0163__en-us_topic_0093946822_s07659dca3d374eedac595cd480e2afd5"><h4 class="sectiontitle">Example</h4><p id="dli_08_0163__en-us_topic_0093946822_a37d2f1910ff0441bb16920e660f99692">To generate the aggregate row, super-aggregate row, and total row according to the group_id and job fields and return the total salary on each aggregation condition, run the following statement:</p>
|
|
<div class="codecoloring" codetype="Sql" id="dli_08_0163__screen64581614135310"><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></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">group_id</span><span class="p">,</span><span class="w"> </span><span class="n">job</span><span class="p">,</span><span class="w"> </span><span class="k">SUM</span><span class="p">(</span><span class="n">salary</span><span class="p">)</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">group_test</span>
|
|
<span class="w"> </span><span class="k">GROUP</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="n">group_id</span><span class="p">,</span><span class="w"> </span><span class="n">job</span>
|
|
<span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">ROLLUP</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dli_08_0159.html">Grouping</a></div>
|
|
</div>
|
|
</div>
|
|
|