美文网首页
1.sql求累计值

1.sql求累计值

作者: 唐人三藏 | 来源:发表于2021-11-27 08:29 被阅读0次

方法一:窗口函数 sum() over()

原始表:

运行语句:

方法二:

累计值和序号可以通过窗口函数计算得出,但窗口函数对my sql版本有限制,低版本的my sql无法使用,因此,可以用变量计算。

1、用户变量的基本运算逻辑:

    在一个会话内,只需要初始化一次,之后在会话内都是对上次计算的结果再次计算(相当于是在这个会话内的全局变量)

2、mysql中,用户变量不用事前申明,直接用“@变量名”就可以使用

第一种:set @num= 1 或者 set @num:=1 ; ------------这里用set语句创建并初始化变量

第二种:select @num:=1 或者 @num:=字段名 from 表

*** 一定要定义初始值,否则每跑次数据,数据都会有变化

*** 排序会影响结果输出,因此,最好还是用order by,使数据按照自己想的排序

3、案例:求累计值

    创建如下表leiji,计算val累计值(不同的month,不同的dept 计算累计值):

leij列,为累计值:

语句解释:

@val------------定义的变量

@val := 0-----------赋值变量初始值为0

@val:=A.val+@val ---------求累计和公式

案例里,第一次运算:A.dept = a ,@dept 为空,根据上面的IF公式,两者不相等,因此,@val=A.val= 11,leij列第一个值为11;

根据变量的内部运算逻辑: 在一个会话内,只需要初始化一次,之后在会话内都是对上次计算的结果再次计算。

第一次运算结果@val =11 ,因此第二次运算 @val初始值为11

第二次运算:A.dept = a,@pe_id = a,根据IF公式,两者相等,得新的@val = 11+ 21 =32,将新值存放在leij第二的位置;

依次类推,可以求出累计值。

方法三:

用到的表:

累计值计算语句:

逻辑:

相关文章

  • 1.sql求累计值

    方法一:窗口函数 sum() over() 原始表: 运行语句: 方法二: 累计值和序号可以通过窗口函数计算得出,...

  • 2019-05-14

    日志文本筛选-sort awk 求最大值: 求最小值: 求和: 求平均值: 求最大值 求最大值 求最小值 中位数

  • Sql优化的十种方法

    1.SQL语句中IN包含的值不应过多: 例如:select id from t where num in(1,2,...

  • sql优化的N种方法

    1.SQL语句中IN包含的值不应过多:例如:select id from t where num in(1,2,3...

  • mysql优化1——索引

    1.SQL慢原因 1.1 查询语句写的太烂了 1.2 索引失效(单值索引,复合索引) 1.3 关联...

  • 线性表最值问题

    找最小值 找最大值 顺序表求最大值 顺序表求最小值 带头结点单链表求最大值 带头结点单链表求最小值 q是 最大值/...

  • python:numpy数组常用的统计函数

    数据准备: 求和 求均值 求中值 求最大值和最小值 求极值(最大值和最小值之差)、 6、标准差

  • MySQL语法模板 函数:数值型

    MySQL语法模板系列 求绝对值 求反余弦值 求反正弦值 求反正切值 返回大于或等于x的最小整数 求余弦值 求余切...

  • SQL 函数

    1.SQL AVG 函数 ===> 返回数值列的平均值。NULL 值不包括在计算中 语法: 实例: 2.SQL C...

  • [SkylerAI]零碎知识点07-SQL Server中NUL

    1.SQL中判断某个字段或变量是否为空值 须使用:'字段或变量 is null'或 '字段或变量 is not n...

网友评论

      本文标题:1.sql求累计值

      本文链接:https://www.haomeiwen.com/subject/qtefxrtx.html