MySQL是否计算相同的总和两次?
假设我有这样一个查询:MySQL是否计算相同的总和两次?,mysql,sql,Mysql,Sql,假设我有这样一个查询: SELECT Sum(imp) AS totalimp, Sum(money) AS totalmoney, ( Sum(money) / Sum(imp) ) AS result FROM table GROUP BY date MySQL是缓存这两个总和,还是将总和(imp)和总和(money)计算两次 如果没有,有没有办法避免MySQL重新计算两次总和 谢谢
SELECT Sum(imp) AS totalimp,
Sum(money) AS totalmoney,
( Sum(money) / Sum(imp) ) AS result
FROM table
GROUP BY date
MySQL是缓存这两个总和,还是将总和(imp)和总和(money)计算两次
如果没有,有没有办法避免MySQL重新计算两次总和
谢谢大家! 怎么样
SELECT @totalimp := Sum(imp) AS totalimp,
@totalmoney := Sum(money) AS totalmoney,
( @totalmoney / @totalimp ) AS result
FROM table
GROUP BY date
SELECT @totalimp := x.totalimp,
@totalmoney := x.totalmoney,
@result := ( x.totalmoney / x.totalimp )
FROM (SELECT Sum(imp) AS totalimp,
Sum(money) AS totalmoney
FROM table
GROUP BY date ) x
每个
日期将计算一次。。。您在选择时缺少了它。好吧,如果MySQL不做两次相同的求和,那就太好了!(关于缺少的日期,这实际上是一个虚拟请求,只是为了暴露问题)我已经尝试过这个方法,但是使用这个方法我的结果总是空的。这似乎不是一件好事,分配变量,并使用它在同一时间(从我发现)是的,这将工作!(但是我已经有很多这样的子查询级别了,我想避免再添加一个!)但是由于MySQL没有两次重新计算总和,我可以像我问题中的请求一样保留它:)