Adam Markowitz created CALCITE-6562:
---------------------------------------

             Summary: incorrect value calculated for AS MEASURE aggregate when 
leveraging multiple GROUPING SETS groups
                 Key: CALCITE-6562
                 URL: https://issues.apache.org/jira/browse/CALCITE-6562
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.37.0
            Reporter: Adam Markowitz


 
{code:java}
!set outputformat mysql
!use scott

create view empm as
select *, avg(sal) as measure avg_sal
from emp;
(0 rows modified)

!update

SELECT job, year(hiredate) as hire_year, avg_sal FROM empm
GROUP BY GROUPING SETS
(
  (YEAR(hiredate), job),
  (YEAR(hiredate)),
  ()
)
ORDER BY job, YEAR(hiredate);
+-----------+-----------+---------+
| JOB       | HIRE_YEAR | AVG_SAL |
+-----------+-----------+---------+
| ANALYST   |      1981 | 3000.00 |
| ANALYST   |      1987 | 3000.00 |
| CLERK     |      1980 |  800.00 |
| CLERK     |      1981 |  950.00 |
| CLERK     |      1982 | 1300.00 |
| CLERK     |      1987 | 1100.00 |
| MANAGER   |      1981 | 2758.33 |
| PRESIDENT |      1981 | 5000.00 |
| SALESMAN  |      1981 | 1400.00 |
|           |      1980 |  800.00 |
|           |      1981 | 2282.50 |
|           |      1982 | 1300.00 |
|           |      1987 | 2050.00 |
|           |           | 2073.21 |
+-----------+-----------+---------+
(14 rows)

!ok {code}
failure:

 

 
{code:java}
< |           |      1980 |  800.00 |
< |           |      1981 | 2282.50 |
< |           |      1982 | 1300.00 |
< |           |      1987 | 2050.00 |
< |           |           | 2073.21 |
---
> |           |      1980 |         |
> |           |      1981 |         |
> |           |      1982 |         |
> |           |      1987 |         |
> |           |           |         | {code}
grouping set groups that contain NULLs do not render the aggregate value.

 

using an inline aggregate produces the correct results:

 
{code:java}
SELECT job, year(hiredate) as hire_year, avg(sal) as avg_sal FROM empm
GROUP BY GROUPING SETS
(
  (YEAR(hiredate), job),
  (YEAR(hiredate)),
  ()
)
ORDER BY job, YEAR(hiredate); {code}
 

 

May possibly be related to CALCITE-6561  (Perhaps NULL dimension values are not 
properly completing the aggregate lifecycle for AS MEASURE aggregates properly?)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to