ORCLE 取当前时间往前最近一条记录,并通过group by 分组。
需要取出当前时间往前5分钟最近的一条记录的tagvalue值, 并且通过tagname分组。
比如:
tagname tagvalue timetamp
A 5 2017-02-24 10:56:00
A 6 2017-02-24 10:58:00
B 2 2017-02-24 10:56:00
B 6 2017-02-24 10:58:00
C 5 2017-02-24 10:56:00
C 3 2017-02-24 10:58:00
需要取成
tagname tagvalue timetamp
A 6 2017-02-24 10:58:00
B 6 2017-02-24 10:58:00
C 3 2017-02-24 10:58:00
就是说,不仅要取通过tagname 分组,并且分组后的tagvalue值要取 时间最近的那一条记录。
本人写的sql 卡写到这找不到解决办法了;
select tagname, tagvalue from ( --这里的tagvalue 怎样能取到第一条呢?而不是最大 也不是最小。
select *
from jcsj_sssj
where timetamp between to_date('2017-02-16 23:55:00', 'yyyy-mm-dd hh24:mi:ss')
and to_date('2017-02-17 00:00:00', 'yyyy-mm-dd hh24:mi:ss')
--and tagname = 'OPC-61-BS.BS_PLC.PLC.12PP_PT565'
order by timetamp desc
)
group by tagname求大神给出解决方案。
相关推荐
基于mysql实现group by取各分组最新一条数据
前言: group by函数后取到的是分组中的第一条数据,但是我们有时候需要取出各分组的最新一条,该怎么实现呢? 本文提供两种实现方式。 一、准备数据 http://note.youdao.com/noteshare?id=dba748092a619be0a8f160ccf6e25a5f&sub=FD4C1C7823CA440DB360FEA3B4A905CD 二、三种实现方式 1)先order by之后再分组: SELECT * FROM (SELECT * from tb_dept ORDER BY id descLIMIT 10000) a GROUP BY parent_id; 不
mysql使用GROUP BY分组实现取前N条记录的方法
主要介绍了mysql使用GROUP BY分组实现取前N条记录的方法,结合实例形式较为详细的分析了mysql中GROUP BY分组的相关使用技巧,需要的朋友可以参考下
My SQL group by取同组第一条
5.6测试满足。 8.0测试不OK。 网上说的一套一套的,基本都是低版本MySQL5.6。 前情提示: Mac OS10.14; MySQL8.0.18;localhost;这里插一句,MySQL高版本5.7以后,sql_mode有变化,其中之一体现为,group by写法。可查看文章了解: 远程centOS6.8final,MySQL5.6; 表结构,数据都是一样; 测试SQL语句: SELECT SwipeID,MemberID,AddTime FROM ( SELECT * FROM front_membercardswipe fmcs ORDER BY fmcs.AddTime AS
mysql分组取每组前几条记录(排名) 附group by与order by的研究
–按某一字段分组取最大(小)值所在行的数据 代码如下: /* 数据如下: nameval memo a 2 a2(a的第二个值) a 1 a1–a的第一个值 a 3 a3:a的第三个值 b 1 b1–b的第一个值 b 3 b3:b的第三个值 b 2 b2b2b2b2 b 4 b4b4 b 5 b5b5b5b5b5 */ –创建表并插入数据: 代码如下: create table tb(name varchar(10),val int,memo varchar(20)) insert into tb values(‘a’, 2, ‘a2(a的第二个值)’) insert into tb
Mysql取分组后的每组第一条数据
Mysql取分组后的每组第一条数据 gruop by 分组后 进行 order by mysql会按照 先分组后排序的形式进行输出 并不能做到每组中的第一条数据取出。 我的思路是 : 先将要查询的数据表转换成已经排序的临时表 在进行 分组操作 。 因为在mysql分组是将第一个出现的数据进行展示出。 MySQL会创建临时表的几种情况: 1、UNION查询; 2、用到TEMPTABLE算法或者是UNION查询中的视图; 3、ORDER BY和GROUP BY的子句不一样时; 4、表连接中,ORDER BY的列不是驱动表中的;(指定了联接条件时,满足查询条件的记录行数少的表为[驱动表],未指定联接



