Могу ли я использовать переменную I, заданную в операторе select
?Использовать переменные, заданные в операторе select
Я хочу сделать что-то вроде этого (что, очевидно, не работает):
SELECT
YEAR(date_of_spend),
@current := SUM(spend_amount),
@half := (SUM(spend_amount)/2),
(@current - @half)
FROM `sales_data`
GROUP BY YEAR(date_of_spend)
Выполняет ли MySQL вычисления дважды? – Petah
Это не документированная оптимизация, поэтому я не стал бы на нее рассчитывать, тем более, что большая сосредоточенность на оптимизации лежит обычно на объединениях. Это не должно быть сложно проверить. У вас также есть возможность использовать подзапрос, который позволит избежать двойных вычислений, но может потребоваться больше памяти (зависит также от оптимизатора). – koriander