[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329921#comment-16329921 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user liuyu000 commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162238300 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. +* Second-level: subtotals aggregating across column 3 for each combination of column 1 and column 2. +* Third-level: subtotals aggregating across column 2 and column 3 for each column 1. +* Fourth-level: the grand total row. + +NOTE: Trafodion does not support CUBE function which works slightly differently from ROLLUP. + +[[considerations_for_rollup]] +=== Considerations for ROLLUP + +[[null_in_result_sets]] + NULL in Result Sets + +* The NULLs in each super-aggregate row represent subtotals and grand total. +* The NULLs in selected columns are considered equal and sorted into one NULL group in result sets. + +[[using_rollup_with_the_column_order_reversed]] + Using ROLLUP with the Column Order Reversed + +ROLLUP removes the right-most column at each step, therefore the result sets vary with the column order specified in the comma-separated list. + +[cols="50%,50%"] +|=== +| If the column order is _country_, _state_, _city_ and _name_, ROLLUP returns following groupings. +| If the column order is _name_, _city_, _state_ and _country_, ROLLUP returns following groupings. +| _country_, _state_, _city_ and _name_ | _name_, _city_, _state_ and _country_ +| _country_, _state_ and _city_ | _name_, _city_ and _state_ +| _country_ and _state_ | _name_ and _city_ +| _country_ | _name_ +| grand total| grand total +|=== + +[[examples_of_rollup]] +=== Examples of ROLLUP + +[[examples_of_grouping_by_one_or_multiple_rollup_columns]] + Examples of Grouping By One or Multiple Rollup Columns + +Suppose that we have a _sales1_ table like this: + +``` +SELECT * FROM sales1; + +DELIVERY_YEAR REGION PRODUCT REVENUE +- -- --- + 2016 A Dress100 + 2016 A Dress200 + 2016 A Pullover 300 + 2016 B Dress400 + 2017 A Pullover 500 + 2017 B Dress600 + 2017 B Pullover 700 + 2017 B Pullover 800 + +--- 8 row(s) selected. +``` + +* This is an example of grouping by one rollup column. ++ +``` +SELECT delivery_year, SUM (revenue) AS total_revenue +FROM sales1 +GROUP BY ROLLUP (delivery_year); +``` + ++ +``` +DELIVERY_YEAR TOTAL_REVENUE +- + 2016 1000 + 2017 2600 + NULL 3600 + +--- 3 row(s) selected. +``` + +* This is an example of grouping by two rollup columns. ++ +ROLLUP firstly aggregates at the lowest level (_region_) and then rollup those aggregations to the next +level (_delivery_year_), finally it produces a grand total across these two levels. + ++ +``` +SELECT delivery_year, region, SUM (revenue) AS total_revenue +FROM sales1 +GROUP BY ROLLUP (delivery_year, region); +``` + ++ +``` +DELIVERY_YEAR REGION TOTAL_REVENUE +- -- + 2016
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329920#comment-16329920 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user liuyu000 commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162238258 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. +* Second-level: subtotals aggregating across column 3 for each combination of column 1 and column 2. +* Third-level: subtotals aggregating across column 2 and column 3 for each column 1. +* Fourth-level: the grand total row. + +NOTE: Trafodion does not support CUBE function which works slightly differently from ROLLUP. + +[[considerations_for_rollup]] +=== Considerations for ROLLUP + +[[null_in_result_sets]] + NULL in Result Sets + +* The NULLs in each super-aggregate row represent subtotals and grand total. +* The NULLs in selected columns are considered equal and sorted into one NULL group in result sets. + +[[using_rollup_with_the_column_order_reversed]] + Using ROLLUP with the Column Order Reversed + +ROLLUP removes the right-most column at each step, therefore the result sets vary with the column order specified in the comma-separated list. + +[cols="50%,50%"] +|=== +| If the column order is _country_, _state_, _city_ and _name_, ROLLUP returns following groupings. +| If the column order is _name_, _city_, _state_ and _country_, ROLLUP returns following groupings. +| _country_, _state_, _city_ and _name_ | _name_, _city_, _state_ and _country_ +| _country_, _state_ and _city_ | _name_, _city_ and _state_ +| _country_ and _state_ | _name_ and _city_ +| _country_ | _name_ +| grand total| grand total +|=== + +[[examples_of_rollup]] +=== Examples of ROLLUP + +[[examples_of_grouping_by_one_or_multiple_rollup_columns]] + Examples of Grouping By One or Multiple Rollup Columns + +Suppose that we have a _sales1_ table like this: + +``` +SELECT * FROM sales1; + +DELIVERY_YEAR REGION PRODUCT REVENUE +- -- --- + 2016 A Dress100 + 2016 A Dress200 + 2016 A Pullover 300 + 2016 B Dress400 + 2017 A Pullover 500 + 2017 B Dress600 + 2017 B Pullover 700 + 2017 B Pullover 800 + +--- 8 row(s) selected. +``` + +* This is an example of grouping by one rollup column. ++ +``` +SELECT delivery_year, SUM (revenue) AS total_revenue +FROM sales1 +GROUP BY ROLLUP (delivery_year); +``` + ++ +``` +DELIVERY_YEAR TOTAL_REVENUE +- + 2016 1000 + 2017 2600 + NULL 3600 + +--- 3 row(s) selected. +``` + +* This is an example of grouping by two rollup columns. ++ +ROLLUP firstly aggregates at the lowest level (_region_) and then rollup those aggregations to the next --- End diff -- Thanks Dave, your comment has been incorporated :) > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type:
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329918#comment-16329918 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user liuyu000 commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162238124 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. +* Second-level: subtotals aggregating across column 3 for each combination of column 1 and column 2. +* Third-level: subtotals aggregating across column 2 and column 3 for each column 1. +* Fourth-level: the grand total row. + +NOTE: Trafodion does not support CUBE function which works slightly differently from ROLLUP. + +[[considerations_for_rollup]] +=== Considerations for ROLLUP + +[[null_in_result_sets]] + NULL in Result Sets + +* The NULLs in each super-aggregate row represent subtotals and grand total. --- End diff -- Thanks Dave, your comment has been incorporated :) > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329908#comment-16329908 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user liuyu000 commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162237087 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. --- End diff -- Thanks Dave, your comment has been incorporated :) > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329906#comment-16329906 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user liuyu000 commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162237017 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). --- End diff -- Thanks Dave, your comment has been incorporated :) > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329569#comment-16329569 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user DaveBirdsall commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162192952 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. --- End diff -- Possible wordsmith: "the usual aggregate values as calculated..." > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16329568#comment-16329568 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user DaveBirdsall commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162192522 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. --- End diff -- There is no "ORDER BY ROLLUP" syntax. But it looks like there are functions such as GROUPING that can refer to whether a column is used as a grouping column in a rollup result row, so one can order the detail vs. the summary rows. There's also a small typo here "...is a an..." Possible wordsmith for the last sentence: "It is an extension to the 'GROUP BY' clause. Related features such as the GROUPING function can be used with 'ORDER BY' to control the placement of summary results." > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16328773#comment-16328773 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user traflm commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162052172 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] +== ROLLUP Function + +The ROLLUP function calculates multiple levels of subtotals aggregating from right to left through the comma-separated list of columns, and provides a grand total. It is a an extension to the `GROUP BY` clause and can be used with `ORDER BY` to sort the results. + +``` +SELECT…GROUP BY ROLLUP (column 1, [column 2,]…[column n]) +``` + +ROLLUP generates n+1 levels of subtotals and grand total, where n is the number of the selected column(s). + +For example, a query that contains three rollup columns returns the following rows: + +* First-level: stand aggregate values calculated by GROUP BY clause without using ROLLUP. +* Second-level: subtotals aggregating across column 3 for each combination of column 1 and column 2. +* Third-level: subtotals aggregating across column 2 and column 3 for each column 1. +* Fourth-level: the grand total row. + +NOTE: Trafodion does not support CUBE function which works slightly differently from ROLLUP. + +[[considerations_for_rollup]] +=== Considerations for ROLLUP + +[[null_in_result_sets]] + NULL in Result Sets + +* The NULLs in each super-aggregate row represent subtotals and grand total. +* The NULLs in selected columns are considered equal and sorted into one NULL group in result sets. + +[[using_rollup_with_the_column_order_reversed]] + Using ROLLUP with the Column Order Reversed + +ROLLUP removes the right-most column at each step, therefore the result sets vary with the column order specified in the comma-separated list. + +[cols="50%,50%"] +|=== +| If the column order is _country_, _state_, _city_ and _name_, ROLLUP returns following groupings. +| If the column order is _name_, _city_, _state_ and _country_, ROLLUP returns following groupings. +| _country_, _state_, _city_ and _name_ | _name_, _city_, _state_ and _country_ +| _country_, _state_ and _city_ | _name_, _city_ and _state_ +| _country_ and _state_ | _name_ and _city_ +| _country_ | _name_ +| grand total| grand total +|=== + +[[examples_of_rollup]] +=== Examples of ROLLUP + +[[examples_of_grouping_by_one_or_multiple_rollup_columns]] + Examples of Grouping By One or Multiple Rollup Columns + +Suppose that we have a _sales1_ table like this: + +``` +SELECT * FROM sales1; + +DELIVERY_YEAR REGION PRODUCT REVENUE +- -- --- + 2016 A Dress100 + 2016 A Dress200 + 2016 A Pullover 300 + 2016 B Dress400 + 2017 A Pullover 500 + 2017 B Dress600 + 2017 B Pullover 700 + 2017 B Pullover 800 + +--- 8 row(s) selected. +``` + +* This is an example of grouping by one rollup column. ++ +``` +SELECT delivery_year, SUM (revenue) AS total_revenue +FROM sales1 +GROUP BY ROLLUP (delivery_year); +``` + ++ +``` +DELIVERY_YEAR TOTAL_REVENUE +- + 2016 1000 + 2017 2600 + NULL 3600 + +--- 3 row(s) selected. +``` + +* This is an example of grouping by two rollup columns. ++ +ROLLUP firstly aggregates at the lowest level (_region_) and then rollup those aggregations to the next +level (_delivery_year_), finally it produces a grand total across these two levels. + ++ +``` +SELECT delivery_year, region, SUM (revenue) AS total_revenue +FROM sales1 +GROUP BY ROLLUP (delivery_year, region); +``` + ++ +``` +DELIVERY_YEAR REGION TOTAL_REVENUE +- -- + 2016 A
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16328768#comment-16328768 ] ASF GitHub Bot commented on TRAFODION-2909: --- Github user traflm commented on a diff in the pull request: https://github.com/apache/trafodion/pull/1399#discussion_r162050572 --- Diff: docs/sql_reference/src/asciidoc/_chapters/sql_functions_and_expressions.adoc --- @@ -6337,6 +6337,300 @@ UPDATE persnl.job SET jobdesc = RIGHT (jobdesc, 12); ``` +<<< +[[rollup_function]] --- End diff -- I think this is not a function but a clause, so I suggest move this chapter into chapter 6? I am not sure about this, @DaveBirdsall what do you think here? > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TRAFODION-2909) Add ROLLUP Function for *Trafodion SQL Reference Manual*
[ https://issues.apache.org/jira/browse/TRAFODION-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16326829#comment-16326829 ] ASF GitHub Bot commented on TRAFODION-2909: --- GitHub user liuyu000 opened a pull request: https://github.com/apache/trafodion/pull/1399 [TRAFODION-2909] Add ROLLUP Function for *Trafodion SQL Reference Manual* You can merge this pull request into a Git repository by running: $ git pull https://github.com/liuyu000/trafodion ROLLUP Alternatively you can review and apply these changes as the patch at: https://github.com/apache/trafodion/pull/1399.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1399 commit 233d096295d239ac6ecf6a70c247b5ec33007dfb Author: liu.yuDate: 2018-01-16T07:17:00Z Add ROLLUP Function for *Trafodion SQL Reference Manual* > Add ROLLUP Function for *Trafodion SQL Reference Manual* > - > > Key: TRAFODION-2909 > URL: https://issues.apache.org/jira/browse/TRAFODION-2909 > Project: Apache Trafodion > Issue Type: Documentation >Reporter: Liu Yu >Assignee: Liu Yu >Priority: Major > -- This message was sent by Atlassian JIRA (v7.6.3#76005)