Ovchinnikov Vasily wrote:
1) Запрос типа такого (смысл - подмена диапазонов значений одного поля и
суммирование других полей таблицы с группировкой по подмененному значению)
SELECT
CASE
WHEN (r.RDB$RELATION_ID <100 ) THEN 0
ELSE 1
END ID,
SUM(r.RDB$FIELD_ID)
FROM RDB$RELATIONS r
GROUP BY ID
вообще ошибку дал - неверное поле ID (ага, значит нельзя так... А
почему, собственно?)
Группировка по алиасу -- фича 2.0.
2) В варианте с
GROUP BY r.RDB$RELATION_ID
вернул кучу записей вместо ожидаемых двух (ведь ID после CASE ожидается
или 0 или 1). Ну, тут я, наверное, подсознательно понимаю, почему.
По чему группировал -- столько записей он и вернул.
3) Однако, третья попытка модификации запроса удалась: стоило написать
GROUP BY 1
и все встало на свои места - две записи в результате (с ID=0 и ID=1)
Есс-но.
--
Дмитрий Еманов