首页新闻找找看学习计划

两个小时之内数据不变的记录

0
悬赏园豆:10 [待解决问题]

这个mysql语句怎么写,

有三列name,age,cnm(时间列)

数据是每三秒钟一条,想查出来同一个name下,两个小时之内age一直没有变的记录

博学多思的主页 博学多思 | 初学一级 | 园豆:89
提问于:2017-02-23 12:49
< >
分享
所有回答(2)
0

是从当前到2小时以前.还是随便哪个时间段持续2小时

吴瑞祥 | 园豆:28675 (高人七级) | 2017-02-23 12:59

从每条数据的时间开始算起

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:03

@博学多思: 怎么样才算是一条数据?你不是3秒一条吗

支持(0) 反对(0) 吴瑞祥 | 园豆:28675 (高人七级) | 2017-02-23 16:24
0

意思就是时间段内 count() 是 1 的呗。


长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:07

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:09

@博学多思: 那你先写个sql 求 count,然后再查询它 where count = 1


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:10

@长蘑菇星人: 

我写出来了,但是速度特别慢啊,几十万条数据三四十分钟啊

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:11

@博学多思: 时间上建索引呀


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:12

@长蘑菇星人: 建索引了

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:12

@博学多思: name呢 要不 时间 + name 建索引


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:14

@长蘑菇星人: 看看我写的,哪块有问题

SELECT *   
from table201611 as o1
where(

  select count(distinct JLD) from table201611  where 
UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s'))
 between  UNIX_TIMESTAMP(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s')) and   UNIX_TIMESTAMP(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 2 hour))     
and TZBH=o1.TZBH )=1 
and UNIX_TIMESTAMP(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'))<> (select max(UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s'))) from table201611  where TZBH=o1.TZBH)
支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:14

@博学多思: 这个。。时间不格式化不行么。。


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:15

@长蘑菇星人: 时间是varchar类型的

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:15

@长蘑菇星人: 20161105201046

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:16

@博学多思: orz 。。。


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:17

@博学多思: 那也不要转换


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:18

@长蘑菇星人: 怎么修改?

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:19

@博学多思: UNIX_TIMESTAMP(STR_TO_DATE (DYSJ, '%Y%m%d %H%i%s')) 直接写 DYSJ


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:20

@长蘑菇星人: UNIX_TIMESTAMP(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 2 hour)) 

这个怎么改?

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:22

@博学多思: 最好格式化成字符串 20161105201046


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:23

@长蘑菇星人: 怎么把字符串加上两个小时啊?说的具体点,不会写啊

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:25

@博学多思: 你最后把他变成字符串就好了啊

变成字符串yyyyMMddHHmmss( UNIX_TIMESTAMP(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 2 hour)) )



支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:26

@长蘑菇星人: 不行啊,还没查出来那

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:41

@博学多思: 改成什么样了


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:42

@长蘑菇星人: 

SELECT *   
from table201611 as o1
where(

  select count(distinct JLD) from table201611  where 
DYSJ
 between  DYSJ and   date_format(DATE_ADD(STR_TO_DATE (o1.DYSJ, '%Y%m%d %H%i%s'),INTERVAL 2 hour),'%Y%m%d %H%i%s')     
and TZBH=o1.TZBH )=1 
and o1.DYSJ<> (select max(o1.DYSJ) from table201611  where TZBH=o1.TZBH)
支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 13:43

@博学多思: between 后面写错了


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 13:47

@长蘑菇星人: 怎么写?

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 14:18

@博学多思: 你可不可以仔细点呀。


支持(0) 反对(0) 长蘑菇星人 | 园豆:1820 (小虾三级) | 2017-02-23 14:20

@长蘑菇星人: 没写错啊,哪里有问题?

支持(0) 反对(0) 博学多思 | 园豆:89 (初学一级) | 2017-02-23 14:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册