首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mysql递归减法和乘积分组值

Mysql递归减法和乘积分组值
EN

Stack Overflow用户
提问于 2014-03-29 02:30:03
回答 1查看 127关注 0票数 1

我不能用语言来解释我的问题,但举一个例子我可以清楚地展示出来:

我有一张这样的桌子:

代码语言:javascript
运行
复制
id    num   val  flag
0     3     10   1
1     5     12   2
2     7     12   1
3     11    15   2

我要遍历所有的行,计算"num“的增加,然后用"val”值乘以这个差值。当我计算所有这些结果时,我想把这些结果加在一起,但是根据“标志”值分组。

这是数学方程式,我想在桌子上运行:

代码语言:javascript
运行
复制
Result_1 = (3-0)*10 + (7-3)*12
Result_2 = (5-0)*12 + (11-5)*15

78  = Result_1
150 = Result_2

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-29 03:00:46

有趣的问题。不幸的是,MYSQL不支持recursive queries,所以在这里您需要有一点创造性。像这样的东西可以起作用:

代码语言:javascript
运行
复制
select flag,
  sum(calc)
from (
  select flag, 
    (num-if(@prevflag=flag,@prevnum,0))*val calc,
    @prevnum:=num prevnum,
    @prevflag:=flag prevflag
  from yourtable 
    join (select @prevnum := 0, @prevflag := 0) t
  order by flag
  ) t
group by flag
  • SQL Fiddle演示
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22726266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档