Zhen Chen created CALCITE-7126:
----------------------------------

             Summary: The calculation result of grouping function is wrong
                 Key: CALCITE-7126
                 URL: https://issues.apache.org/jira/browse/CALCITE-7126
             Project: Calcite
          Issue Type: Bug
          Components: core
    Affects Versions: 1.40.0
            Reporter: Zhen Chen


The calculation result of grouping function is wrong.
in agg.iq result is

{code:java}
+--------+-----+-------+--------+-------------+----------+----------+
| DEPTNO | JOB | SAL   | EXPR$3 | DEPTNO_FLAG | JOB_FLAG | SAL_FLAG |
+--------+-----+-------+--------+-------------+----------+----------+
|     10 | aa  |       |   1250 |           0 |        0 |        1 |
|     10 | aa  |       |   1250 |           0 |        0 |        0 |
|     10 |     |  7000 |        |           0 |        1 |        0 |
|     10 |     | 10000 |   1000 |           0 |        1 |        0 |
|     10 |     | 11500 |    250 |           0 |        1 |        0 |
|     20 | aa  |       |    500 |           0 |        0 |        1 |
|     20 | aa  |       |    500 |           0 |        0 |        0 |
|     20 |     |  8000 |    500 |           0 |        1 |        0 |
+--------+-----+-------+--------+-------------+----------+----------+
(8 rows)
{code}

in pgsql result is

{code:java}
 deptno | job |  sal  | sum  | deptno_flag | job_flag | sal_flag 
--------+-----+-------+------+-------------+----------+----------
     10 | aa  |       | 1250 |           0 |        0 |        1
     10 | aa  |       | 1250 |           0 |        0 |        1
     10 |     |  7000 |      |           0 |        1 |        0
     10 |     | 10000 | 1000 |           0 |        1 |        0
     10 |     | 11500 |  250 |           0 |        1 |        0
     20 | aa  |       |  500 |           0 |        0 |        1
     20 | aa  |       |  500 |           0 |        0 |        1
     20 |     |  8000 |  500 |           0 |        1 |        0
(8 rows)
{code}

The sal_flag column has incorrect values in rows 2 and 7.

SQL is 

{code:java}
WITH emps_data AS (
  SELECT * FROM (VALUES
    (100, 10, 'Bill', 10000, 1000, 'aa'),
    (110, 10, 'Theodore', 11500, 250, 'aa'),
    (150, 10, 'Sebastian', 7000, NULL, 'aa'),
    (200, 20, 'Eric', 8000, 500, 'aa')
  ) AS t(empno, deptno, ename, sal, comm, job)
)

SELECT deptno, job, sal, SUM(comm),
       GROUPING(deptno) AS deptno_flag,
       GROUPING(job) AS job_flag,
       GROUPING(sal) AS sal_flag
FROM emps_data
GROUP BY GROUPING SETS ((deptno, job), (deptno, sal), (deptno, job))
ORDER BY deptno, job, sal;
{code}




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

Reply via email to