У меня длинный запрос, включающий несколько подзапросов. Но я получаю нулевые значения взамен, если я выполняю запрос одним способом, и никаких нулевых значений, если я выполняю запрос другим способом, который фактически идентичен.
Этот пример был чрезвычайно упрощен, но проблема в основном принимает следующую форму. Когда я запускаю запрос, подобный этому, никакие нулевые суммы не возвращаются (что является ожидаемым результатом):
WITH subquery1 AS (SELECT * FROM some_data WHERE value > 0), subquery2 AS (SELECT * FROM subquery1 WHERE name LIKE "%abc%") SELECT id, SUM(value) FROM subquery2 GROUP BY id
Но когда я запускаю этот запрос, я получаю несколько нулей в виде сумм обратно :
WITH subquery1 AS (SELECT * FROM some_data WHERE value > 0), subquery2 AS (SELECT * FROM subquery1 WHERE name LIKE "%abc%"), subquery3 AS (SELECT id, SUM(value) FROM subquery2 GROUP BY id) SELECT * FROM subquery3
Два запроса фактически одинаковы. Поэтому я не понимаю, почему я получу разные результаты от этих двух.