Case with division in group by may lead to invalid error

Details

Detail name Value
Changelog Number 31566
Type Bug
Status Resolved
Affected Versions Exasol 2026.1.0, Exasol 2025.1.11
Fix Versions Exasol 2026.1.1, Exasol 2025.1.13
Resolution Date 2026-07-15

Description

A valid query containing a GROUP BY clause may lead to a “data exception - division by zero” error if the following conditions apply:

  • The query contains a case expression (e.g., CASE, IF) in the GROUP BY clause.
  • The query contains the same expression in the select list.
  • The query contains a column or expression in the GROUP BY that is not necessary to form the groups of the GROUP BY.
  • The case expression contains a division.
WITH W1 AS (
  SELECT a1, a1 AS x
  FROM (VALUES BETWEEN -1 AND 1) T1(a1)
  GROUP BY a1
)
SELECT
  a1,
  x,
  CASE WHEN y != 0 THEN 1/ y ELSE NULL END 
FROM W1, (VALUES BETWEEN -1 AND 2 )  T(y)
GROUP BY
  a1,
  /*the column x is not necessary*/ x,
  CASE WHEN y != 0 THEN 1/ y ELSE NULL END;

Workaround

The workaround is to break any of the above conditions. For example, to remove x:

WITH W1 AS (
  SELECT a1, a1 AS x
  FROM (VALUES BETWEEN -1 AND 1) T1(a1)
  GROUP BY a1
)
SELECT
  a1,
  a1,
  CASE WHEN y != 0 THEN 1/ y ELSE NULL END 
FROM W1, (VALUES BETWEEN -1 AND 2 )  T(y)
GROUP BY
  a1,
  CASE WHEN y != 0 THEN 1/ y ELSE NULL END;

Fix

The query no longer throws an error.