我想从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. 我们都是和自己赛跑的人
  2. Erlang与Java内存架构
  3. java打包成jar_把Java程序打包成jar文件包并执行的方法
  4. CWnd的派生类-1、CFrameWnd类
  5. java大数据开发是做什么的_3年Java开发转型大数据,如何跳出CRUD舒适区?
  6. c语言plc编程软件下载,罗克韦尔plc编程软件下载-2017罗克韦尔plc编程软件V21.00 官方最新版 - 极光下载站...
  7. 模糊规则优化matlab,遗传算法优化模糊pid控制规则
  8. 有限元法 matlab,MATLAB有限元分析与应用.pdf
  9. Win10家庭版使用gpedit.msc方法
  10. 《动手学深度学习》(PyTorch版)代码注释 - 47 【Image_augmentation】
  11. 用例图、类图、状态图、活动图、顺序图、协作图
  12. 自从用了这款黑科技工具,妈妈再也不用担心我的c盘文件爆满了
  13. 接入层交换机、汇聚层交换机和核心层交换机的区别
  14. Failed to initiate the GitHub login process. Please try again(1.1.25.1678)
  15. 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
  16. C++无名命名空间详解
  17. 【项目】FT232RL设计记录
  18. SpringCloud Alibaba 实战之《限流与熔断:Sentinel 在项目中的最佳实践》
  19. 误判心理学常见心理倾向
  20. 生活明朗,万物可爱,人间值得,未来可期

热门文章

  1. 温习下C语言一些函数
  2. ios公司开发者账号申请分享攻略
  3. dnt 删除不良数据
  4. 安全使用网上银行 享受在线购物时尚生活
  5. 不会用Photoshop抠图?Python助你一键“除”人!
  6. 多个html网页共享变量,多个jsp页面共享一个js对象的超级方法
  7. mysql 同一天多条记录只取第一条_MySQL面试高频100问(二)
  8. 用python画桃花_python 画图
  9. 金蝶软件怎么过账_代理记账用什么财务软件?
  10. 不裁员也好意思叫互联网公司?