AS c, sum(a)
FROM (SELECT arrayJoin([1, 2]) AS a)
WHERE 1 = 0
GROUP BY c
┌─c─┬─sum(a)─┐
│ 0 │ 0 │
└───┴────────┘
Я тут пытаюсь благодаря 1=0 сделать так чтобы результат был всегда пустой, но получаю одну строку с нулями
Без группировки работает как ожидается:
SELECT 0 AS c, a
FROM (SELECT arrayJoin([1, 2]) AS a)
WHERE 1 = 0
Ok.
0 rows in set. Elapsed: 0.005 sec.
Суть - один столбец с константой, второй с агрегатом. Этот запрос потом куда-то ещё джойнится, такой трюк с 1=0 хотелось использовать чтобы не переписывать весь запрос, а выкидывать его части вот таким вот способом с невыполнимым условием
если в группировке есть группа - в выдаче будет и строка. Не нужна строка в выдаче - фильтруйте константу или сформируйте список нужных вам констант. Да хоть бы и по having, если данных немного. выкидывать можно и попроще - where 0, а ещё лучше через кастом переменные - https://kb.altinity.com/altinity-kb-queries-and-syntax/altinity-kb-parameterized-views
Обсуждают сегодня