Вообщем потребовалось мне в одном месте выполнить агрегацию данных по подзапросу. Ничего не получилось. Решил проверить на более простом примере.
SELECT COUNT(*),
(SELECT 1 FROM RDB$DATABASE C WHERE D.RDB$RELATION_ID=C.RDB$RELATION_ID) AS n
FROM RDB$DATABASE D
GROUP BY 2
Пишет:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).
Вот так всё нормально.
SELECT
(SELECT 1 FROM RDB$DATABASE C WHERE D.RDB$RELATION_ID=C.RDB$RELATION_ID) AS n
FROM RDB$DATABASE D
так тоже
SELECT COUNT(*),
(SELECT 1 FROM RDB$DATABASE C WHERE 1=1) AS n
FROM RDB$DATABASE D
GROUP BY 2
Это баг или я чего-то не понимаю?