Yuanjian Li created SPARK-31663:
-----------------------------------

             Summary: Grouping sets with having clause returns the wrong result
                 Key: SPARK-31663
                 URL: https://issues.apache.org/jira/browse/SPARK-31663
             Project: Spark
          Issue Type: Bug
          Components: SQL
    Affects Versions: 2.4.5, 3.0.0
            Reporter: Yuanjian Li


Grouping sets with having clause returns the wrong result when the condition of 
having contained conflicting naming. See the below example:

{quote}

select sum(a) as b FROM VALUES (1, 10), (2, 20) AS T(a, b) group by GROUPING 
SETS ((b), (a, b)) having b > 10

{quote}

The `b` in `having b > 10` should be resolved as `T.b` not `sum(a)`, so the 
right result should be

{quote}

+---+
| b|
+---+
| 2|
| 2|
+---+

{quote}

instead of an empty result.

The root cause is similar to SPARK-31519, it's caused by we parsed HAVING as 
Filter(..., Agg(...)) and resolved these two parts in different rules. The CUBE 
and ROLLUP have the same issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org
For additional commands, e-mail: issues-h...@spark.apache.org

Reply via email to