我试图将一个sum的结果存储在一个变量中,然后在查询中使用它到目前为止没有成功。
SELECT @pos := 'titi' "c1", @pos "c2";
titi | titi
SELECT c1, @titi := SUM(c2), @titi
FROM (SELECT 1 "c1",2 "c2" UNION SELECT 2,3 UNION SELECT 1,4) t
GROUP BY c1;
实际输出:
1,6,3
2,3,3
期望输出:
1,6,6
2,3,3
如何使变量在每行中保持其值?
答案 0 :(得分:5)
如果我没记错的话,这里的问题是在处理组的第一行时计算不包含聚合函数的列的值,而在聚合时发生赋值@var:=SUM
价值计算。
那么你要么只需要在其他上下文中重复聚合函数,要么聚合函数相当复杂,并且你不想重复:a)将所有内容放在子查询中,b)使用类似{ {1}}(看起来相当hacky)
P.S。您的查询似乎无效,因为列名称应使用反引号引用。