我想从MySQL专栏计算12个月的移动平均线.数据代表时间序列功率测量,它是一个较大的数据集(几年内每10分钟一次).一个高性能的查询会很好,但速度是我以后可以解决的问题.

DTE Active

2012-1-3 00:10 500

2012-1-3 00:20 520

... etc

以下查询为我提供了每月的活动总数:

SELECT YEAR(DTE) AS year, MONTH(DTE) AS month, SUM(Active)/6 as total FROM saturne s GROUP BY YEAR(DTE), MONTH(DTE)

以下查询给出了给定月份和年份的移动平均值 – 例如2011年10月

SELECT SUM(Active)/6 AS average FROM saturne

WHERE (YEAR(DTE) = 2011 AND MONTH(DTE) <= 10) OR (YEAR(DTE) = 2010 AND MONTH(DTE) > 10)

但是,我想生成一个查询,该查询返回下一列中的每月总计和12个月移动平均值.

year month total average

2012 2 701474 9258089

2012 1 877535 9386664

... etc

(因子6是因为数据表示每10分钟记录一次的瞬时功率,将总数除以6给出总能量)

解决方法:

尝试:

SELECT YEAR(GDTE) AS year,

MONTH(GDTE) AS month,

SUM(case when i=0 then Active end)/6 as total,

SUM(Active)/(MAX(i+1)*6) as avg

FROM

(select s.*, DATE_ADD(DTE, INTERVAL m.i MONTH) GDTE, m.i

FROM saturne s

cross join (select 0 i union select 1 union select 2 union select 3 union

select 4 union select 5 union select 6 union select 7 union

select 8 union select 9 union select 10 union select 11) m

) sq

WHERE GDTE <= curdate()

GROUP BY YEAR(GDTE), MONTH(GDTE)

标签:sql,mysql

来源: https://codeday.me/bug/20190902/1790254.html

mysql 中average_mysql – 计算SQL中的移动平均值相关推荐

  1. mysql 列转行 unpivot_Spark SQL中列转行(UNPIVOT)的两种方法

    行列之间的互相转换是ETL中的常见需求,在Spark SQL中,行转列有内建的PIVOT函数可用,没什么特别之处.而列转行要稍微麻烦点.本文整理了2种可行的列转行方法,供参考. 测试数据准备 本文的环 ...

  2. oracle同sql中isnull无法,SQL中的ISNULL函数使用介绍

    这篇文章主要为大家详细介绍了SQL中的ISNULL函数使用介绍,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ISNULL 使用指定的替换值替换 ...

  3. C#EF中,使用类似于SQL中的% 模糊查询

    最近在做项目的时候需要使用到模糊查询,但是后台使用EF写的 而不是ADO或者是Dapper,如果是这样的话,我们就可以使用Sql语句直接进行模糊查询 现在我们需要在LINQ中使用类似于模糊查询 在EF ...

  4. jsp未正确拼写字 mysql_jsp与mysql的汉字乱码SQL中无法使用汉字的问题

    最近在使用java 和 mysql的开发,遇到要在 mysql数据库中使用 selec * from tableName where like table_title LIKE '%你好%'; 假设表 ...

  5. mysql union null_mysql – 删除SQL中的SQL JOIN和UNION操作符中的NULL值

    [求助]如何仅在字段provider_order中删除NULL值,在我的情况下,表使用JOIN表和UNION 这是我的数据库模式和我的SQL查询 为了清楚地描述这里我附上图片 最佳答案 您不能仅删除行 ...

  6. 四步法分析定位生产环境下MySQL上千条SQL中的问题所在

    第一步:通过以下两种方式之一来打开慢查询功能 (1)方式一:通过修改mysql的my.cnf文件 如果是5.0或5.1等版本需要增加以下选项: log-slow-queries="mysql ...

  7. python中怎么计算_python中的加减乘除运算

    python中的加减乘除运算,是学习python入门的基础,是以后进行数学计算的关键部分.包括运算表达式的写法,运算规则,加减乘除,求余,求商等等. 工具/原料 python 电脑 方法/步骤 1 1 ...

  8. php中rowcount 意思,SQL中@@ROWCOUNT函数

    返回受上一语句影响的行数.如果行数大于 20 亿,请使用 ROWCOUNT_BIG. 语法 @@ROWCOUNT        返回类型 int   注释 Transact-SQL 语句可以通过下列方 ...

  9. java 中时间计算_java中关于时间的计算

    1.描述:在原有时间上增加一个时间差: 代码示例: Date psd = sysDate(); String workTimeP1 = mapP.get("WORK_TIME_") ...

最新文章

  1. 重入锁:ReentrantLock 详解
  2. mysql用户数据导入_MySQL添加用户、删除用户与授权和数据的导入导出
  3. Linux复位usb hub,Linux USB subsystem --- USB Hub initialize
  4. vocabulary of ERP
  5. 关于header(Cache-control: private)
  6. php使用邮箱发送验证码
  7. C#中This的用法
  8. python代码写好了怎么运行-python代码如何运行
  9. 设计模式学习笔记之装饰者模式
  10. 判断端口是否能用_MSP430单片机的端口解析
  11. Kali-linux:masscan命令
  12. mac上投屏android_有哪些支持安卓投屏Mac的软件
  13. 企业中流砥柱:别让企业中层缺位
  14. Vue获取浏览器唯一标识
  15. mysql 查询 投影_sql--查询(基本,条件,投影,排序)
  16. 解决 command not found: netstat
  17. Kotlin 密封类代替枚举类
  18. linux虚拟机安装sd卡,使用Vmware虚拟机安装RHEL 6.0
  19. 前端代码拆分的意义,以及如何拆分代码,文件拆分--前端教学文-f
  20. Streamlit学习使用(一)

热门文章

  1. mysql服务器设置其他电脑访问
  2. SOAP协议初级指南(9)
  3. ASP.NET操作Excel(终极方法NPOI)
  4. 怎么用命令开远程主机的telnet服务 2
  5. rabbitmq 学习-2-安装
  6. [导入]mootools框架【三】-Array篇: 主要方法测试实例
  7. 反直觉的三门问题,为什么80%的人都错了?
  8. 操作无法完成因为已经在mysqld.exe上打开_金蝶KIS软件操作技巧/百问百答(下)...
  9. Log4j未平,Logback 又起,再爆漏洞。
  10. 那个 CEO 写下 70 万行代码的公司,马上要上市了