【问题标题】:add two results of two alias添加两个别名的两个结果
【发布时间】:2014-03-06 20:06:12
【问题描述】:

这是我的查询:

在一个查询中有很多来自求和的结果,这些求和想要得到其中的百分比,所以我想分配一个变量,这个解决方案尝试一下,因为我不能把别名加起来,我想加 2 AS a, 1 AS b 形式为 a + b AS 结果...相同的查询头

Select a.*, SUM( a.val1 ) AS val1, SUM( b.val2 ) AS val2
from quest1 a , quest2 b

我想这样做:

Select a.*, @N:= SUM( a.val1 ) AS val1,  @M:= SUM( b.val2 ) AS val2,
(100*@N/@M) as percent
from quest1 a , quest b

【问题讨论】:

  • 真的需要使用变量吗?

标签: mysql add var


【解决方案1】:

您可以通过不带变量的子选择来实现这一点

SELECT t.*, 
(100 * (t.val1/t.val2)) `percent`
FROM
(
Select a.*,SUM( a.val1 ) AS val1, 
 SUM( b.val2 ) AS val2
from quest1 a , quest b
) t

Select a.*,
SUM( a.val1 ) AS val1, 
SUM( b.val2 ) AS val2,
(100 *  ( SUM( b.val1 ) / SUM( b.val2 ) ) ) `percent`
FROM quest1 a , quest b

注意使用没有 group by 子句的聚合函数将导致单行

【讨论】:

  • 那里缺少一个 FROM
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多