Error on UNION with window function and ORDER BY
Details
| Detail name | Value |
|---|---|
| Changelog Number | 8214 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | EXASOL 6.0.0, Exasol 6.1.0, Exasol 6.2.0, Exasol 7.0.0, Exasol 7.1.0, Exasol 8.0.0, Exasol 8.29.0, Exasol 2025.1.0, Exasol 2025.2.0 |
| Fix Versions | Exasol 2026.1.0, Exasol 2025.2.1 |
| Resolution Date | 2026-03-20 |
Description
A query with a UNION which orders by a window function can give the error “order by object not found”.
Example
-- Observed: Error "order by object not found" SELECT RANK() OVER (ORDER BY a1) FROM a UNION SELECT a1 FROM a ORDER BY 1; -- Observed: Error "order by object not found" SELECT COUNT(*) OVER () as count_star FROM a UNION SELECT a1 FROM a ORDER BY count_star;
Workaround
Put a SELECT around the first table operand.
SELECT * FROM (SELECT RANK() OVER (ORDER BY a1) FROM a) UNION SELECT a1 FROM a ORDER BY 1; SELECT * FROM (SELECT COUNT(*) OVER () as count_star FROM a) UNION SELECT a1 FROM a ORDER BY count_star;
Fix
The query succeeds.