2014-03-06 28 views
1

的两个结果,这是我的查询:添加两个别名

在查询中有来自求和许多成果,这些总和希望得到它们之间的比例,因此我要指派一个变量,这个解决方案

尝试,因为我不能加起来别名,我想补充 2作为,1为b形式的+ 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 
+0

是否真的使用要求变量? –

回答

1

你可以做一个子查询不变量使用聚合函数没有GROUP BY子句

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 

注实现,这将导致单列

+0

在那里丢失一个FROM – Mihai

+0

@Mihai感谢您更新了这一点 –