Spr*_*dzy 2 mysql variables group-by
我试图将一个和的结果存储在一个变量中,以便在查询中使用它到目前为止没有成功.
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
我该怎么做才能使变量在每行的基础上保持其值?
如果我没记错的话,这里的问题是当处理组的第一行时计算不包含聚合函数的列的值,而在@var:=SUM计算聚合值时进行赋值.
也就是说,你要么只需要重复聚合函数在其他情况下,或者如果聚合函数是相当复杂的,并且你不想重复:1)把一切都放在一个子查询,B)使用类似IF(COUNT(*), @var, @var)(这看起来相当哈克)
PS您的查询似乎无效,因为列名称应引用反引号.