Validation of GROUP BY expression fails
Details
| Detail name | Value |
|---|---|
| Changelog Number | 30130 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 8.32.0 |
| Fix Versions | Exasol 2026.1.0, Exasol 2025.1.11 |
| Resolution Date | 2026-05-15 |
Description
A query fails with the "not a valid GROUP BY expression" exception in some cases when there is a subquery on the null-generating side of an outer join (for example, the right side of a left outer join), and it contains an expression with a scalar subselect.
Example
-- Setup
CREATE TABLE A (A1 VARCHAR(50), A2 VARCHAR(50));
CREATE TABLE B (B1 VARCHAR(50));
-- Expected: Success
-- Observed: Error "not a valid GROUP BY expression"
SELECT *
FROM (SELECT RN
FROM B
LEFT JOIN (SELECT A1,
CASE WHEN A2 = (SELECT 'X') THEN 1 END AS RN
FROM A
) ON A1 = B1
GROUP BY RN)
WHERE RN > 0;
Workaround
Add an ORDER BY FALSE in a subquery on a null-generating side of a join. In the example above:
SELECT *
FROM (SELECT RN
FROM B
LEFT JOIN (SELECT A1,
CASE WHEN A2 = (SELECT 'X') THEN 1 END AS RN
FROM A
ORDER BY FALSE
) ON A1 = B1
GROUP BY RN)
WHERE RN > 0;
Fix
Validation is fixed and the query runs as expected.