У меня необычная проблема в Redshift (postgreSQL). Копировать здесь слишком долго, но у кого-то в моей команде был такой код:
select (year) as year, (month) as month, (other_col) as other_col, sum(numerical_val) as num
from big_table
where (a few conditions)
group by (year), (month), (other_col)
union
select (year) as year, (month) as month, (other_col) as other_col, sum(numerical_val) as num
from big_table
where (more specific condition)
group by (year), (month), (other_col);
Я не думал, что нужно указывать (год) как год и т. Д. c., Поэтому я удалил они и делали так:
select year, month, other_col, sum(numerical_val) as num
from big_table
where (a few conditions)
group by year, month, other_col
union
select year, month, other_col, sum(numerical_val) as num
from big_table
where (more specific condition)
group by year, month, other_col;
Я ожидал того же результата, но числовой_пропуск отличается от доли процента. Что это за фигня?
Я попробовал несколько экспериментов, и только с одним запросом (без объединения) я получаю тот же самый точный результат, используя "год" по сравнению с "(год), как год" et c. Что-то меняется с союзом.
Можете ли вы предположить, почему части "(год) как год" изменили бы выход в объединении?