В отличие от других языков, имеющих переменную и значение, у Python есть имя и объект.
Этот оператор:
a = [1,2,3]
означает присвоение списку (объекту) имени a
, и это:
b = a
просто дает тому же объекту a
новое имя b
, поэтому всякий раз, когда вы что-то делаете с a
, объект изменяется, и поэтому b
изменяется .
Единственный способ сделать действительно копию a для создания нового объекта, как и другие ответы, уже сказал.
Вы можете увидеть больше об этом здесь .
SELECT budget_id,
SUM(IF(type = 'allocation', points, 0)) AS allocated,
SUM(IF(type = 'issue', points, 0)) AS issued
FROM transactions
GROUP BY budget_id
select budget_ID,
sum(case when type = 'allocated' then points else 0 end) as allocated,
sum(case when type = 'issued' then points else 0 end) as issued
..rest of your query...
group by budget_ID
Случаи могут использоваться для суммирования только при выполнении определенных критериев.