时序数据的数据量比较大,抛去异常点外,变化相对比较有线性规律,业务上需要对结果进行抽取显示。

原始数据时序标签(部分示例)

根据时间字段,计算时间字段和指定时间的时间戳差值,然后除以固定间隔(示例中间隔为5分钟),作为分组字段,然后分组获取第一个输出

select date,dd from (
select date,
floor(
(
unix_timestamp(date)-(select unix_timestamp(date) from test where date=(select min(date) from test))
)
/300
) as dd
from test
) b
group by b.dd

输出结果

插入100w测试数据,生成随机时间戳,其他字段就随意了

CREATE DEFINER=`root`@`localhost` PROCEDURE `testdata`()
BEGIN
declare i INT default 0;
while i <1000000 do
insert into test values (4100000406,1,concat('2013-10-01 ', floor(10+rand()*10),':',floor(10+rand()*49),':',floor(10+rand()*49)));
set i = i+1;
end while;
END;

使用的数据库是mysql,数据结构相对简单,算上时间字段共有三个字段,10w数据执行耗时0.17s,100w数据执行耗时1.7s,因为都是全表扫描,所以数据压力还是比较大。

sql 依据时间间隔分组,获取第一条数据的更多相关文章

  1. sql分组取第一条数据

    sq分组取第一条数据的一个方法: select * from ( select row_number() over(partition by ID order by ID) as rownum , * ...

  2. postgresql分组后获取第一条数据

    -- 根据编号分组取第一条数据 select * from table t where t.no=(select max(no) from table t1 where t1.no=t.no) -- ...

  3. oracle 根据字段分组取第一条数据及rank函数说明

    当前有这样一个需求,根据外键对子表数据进行分组,取每组中的一条数据就行了,如图: 如:COMMANDID = 26的有两条,只取一条数据. sql语句: select * from(select SY ...

  4. LINQ分组取出第一条数据

    Person1: Id=, Name="Test1" Person2: Id=, Name="Test1" Person3: Id=, Name="T ...

  5. Oracle分组取第一条数据

    看看曾经的私密日志.原来自己之前被非常多小而简单的问题困惑过. 看着那时候我们还是新手中的新手做的备忘笔记! 事实上就是用了Oracle的统计函数而已! 曾经的日记(看样子应该是曾经公司的源代码,呵呵 ...

  6. sql分组获取第一条记录(sql+oracle)

    sql版本 select * from (select t.CloseDate,t.ExpiryDate,t.DataTypeLookupID,ROW_NUMBER() over(partition ...

  7. sql分组获取第一条或者最小一条值

    很多人都在问这个问题,现在记录一下 select id from test as a where id = (select min(b.id ) from test as b where a.pid ...

  8. Laravel 5.6 模型关联 user 表后查询 user 表数据只能获取第一条数据,不知道怎么获取第二条

    按照开发手册的说法,肯定是指令不够全,附代码图 如果, tests 是文章表, users 是用户表 test.com/tests/1 是 id 为 1 的文章地址( get 访问) 假如 Tests ...

  9. mssql sqlserver 使用sql脚本获取群组后,按时间排序(asc)第一条数据的方法分享

    摘要: 下文讲述使用sql脚本,获取群组后记录的第一条数据业务场景说明: 学校教务处要求统计: 每次作业,最早提交的学生名单下文通过举例的方式,记录此次脚本编写方法,方便以后备查,如下所示: 实现思路 ...

  10. oracle分组取每组第一条数据

    oracle分组后取每组第一条数据   '数据格式     分组取第一条的效果   [sql] SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY ...

随机推荐

  1. java_day2_常量,变量,数据类型,运算符

    一.常量 常量:在Java程序运行过程中其值不能发生改变的量 分类: 1.字面值常量: 整数常量 表示所有的整数,包括负数 10 -8 小数常量 表示所有的小数 1.23 -3.14 布尔常量 tru ...

  2. 《HelloGitHub》第 102 期

    兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. github.com/521xueweihan/HelloG ...

  3. CSP-S 2023 游记

    CSP-S 2023 游记 Day 0 明天便是 CSP-S 第一轮了,考试前一天万万不能学什么太复杂,太深奥的东西,最好甚至不要过于强度的用脑,保持放空的轻松地状态,心中不要有压力才是最好的考前状态 ...

  4. Nuxt.js 应用中的 app:redirected 钩子详解

    title: Nuxt.js 应用中的 app:redirected 钩子详解 date: 2024/10/3 updated: 2024/10/3 author: cmdragon excerpt: ...

  5. Transformer原理+代码详解

    简介 Transformer是一种深度学习模型,它在自然语言处理(NLP)领域中非常流行和有效.它最初由Vaswani等人在2017年的论文<Attention is All You Need& ...

  6. 001 (Python+水论文合集)为什么录这个合集,这个合集会讲哪些内容?

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  7. day04-常用DOS命令

    打开cmd的方式 开始-W-windows系统-命令提示符 win键+R键 鼠标在任意文件夹上, shift+鼠标右键 资源管理器的地址栏前面加cmd,然后回车 管理员方式运行:选择命令提示符右键以管 ...

  8. 云原生爱好者周刊:K8s Security SIG 发布 Kubernetes 策略管理白皮书

    云原生一周动态要闻: Istio 1.13 发布 CNCF 宣布 2021 年云原生调查结果 运行时安全项目 Falco 添加可扩展插件框架 Grafana 8.3.6 发布 开源项目推荐 文章推荐 ...

  9. 最新Sql语句来啦

    创建数据库 CREATE DATABASE 数据库名称; 删除数据库 DROP DATABASE 数据库名称; 创建新表 create table 表名(列 类型 ,列 类型 ,..); 根据已有的表 ...

  10. dirseach目录扫描工具-安装详细教程

    安装: 1.github源码下载解压 使用 git 安装: 推荐git clone https://github.com/maurosoria/dirsearch.git --depth 1 zip文 ...