关于一个sql,六一儿童节快乐~
2012-06-01 14:06
260 查看
*查询test表中lotetype字段中有且只有两个相同的记录,且这两条记录中的date_time时间间隔为十分钟,取其中的一条作为结果输出。
表:
数据:
![](http://my.csdn.net/uploads/201206/01/1338530846_4201.png)
查询SQL:
查询结果:
![](http://my.csdn.net/uploads/201206/01/1338530890_7730.png)
说明:
1. group_concat函数结合group by去除group_concat包含的字段重复项。
2.取lotetype字段总数为2,关键用到group by分组。
3.时间撮是10分钟用到几个函数,abs(TIME_TO_SEC(timediff( t1.date_time,t2.date_time)) div 60) ,abs取正数,TIME_TO_SEC结果是秒钟,div除法函数
期待优化,这是一个面试题(同事面试遇到的,出这样的题目)。
太阳系 - http://blog.csdn.net/fellting
表:
CREATE TABLE `test` ( `id` varchar(20) COLLATE utf8_swedish_ci, `lotetype` varchar(20) COLLATE utf8_swedish_ci, `date_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY `un_id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=331 DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci;
数据:
![](http://my.csdn.net/uploads/201206/01/1338530846_4201.png)
查询SQL:
select group_concat(distinct t1.lotetype), t1.id,t1.date_time from (select t.id,t.lotetype,t.date_time from test t ,(select lotetype, count(*) as c from test group by lotetype) tc where tc.c=2 and t.lotetype = tc.lotetype) t1 , (select t.id,t.lotetype,t.date_time from test t ,(select lotetype, count(*) as c from test group by lotetype) tc where tc.c=2 and t.lotetype = tc.lotetype) t2 where t1.id!=t2.id and abs(TIME_TO_SEC(timediff( t1.date_time,t2.date_time)) div 60)<10 and t1.lotetype=t2.lotetype group by t1.lotetype;
查询结果:
![](http://my.csdn.net/uploads/201206/01/1338530890_7730.png)
说明:
1. group_concat函数结合group by去除group_concat包含的字段重复项。
2.取lotetype字段总数为2,关键用到group by分组。
3.时间撮是10分钟用到几个函数,abs(TIME_TO_SEC(timediff( t1.date_time,t2.date_time)) div 60) ,abs取正数,TIME_TO_SEC结果是秒钟,div除法函数
期待优化,这是一个面试题(同事面试遇到的,出这样的题目)。
太阳系 - http://blog.csdn.net/fellting
相关文章推荐
- 转一个关于优化SQL的文章
- 求助:关于一个查询的SQL语句,请高人指点如何实现,谢谢!
- 一条sql语句(关于将一个表里的数据汇总,更新数据库中的另外一张表的列值
- 第一个文章,今天比较兴奋啊! 给大家一个关于SQL复合查询的文章(动态生成多个where条件)
- 关于上一个sql优化测试的部分知识
- 一个关于SQL的问题,做做看,好想跟经常遇到的有点不同
- 应邀做这样一个讲座 , 关于MS SQLServer \ Oracle中应用优化的诸要素和实施, 大家看
- 关于ADO.NET,只须一个连接,一条SQL语句,轻松实现增删改查
- 一个关于sql更新的小笔记
- 一个sql提问,引起的研究。关于union all 中,嵌套查询和直接查询的效率比较。
- 关于IN 后面传入ID列表参数表值函数的一个写法:非拼SQL
- 关于Linq to sql 应用时出现的一个‘row not found or changed’ 异常
- 关于一个sql语句需要使用约等于的问题
- 关于sql_mode对自增的一个影响
- 关于求一个表中相同板块的总点击数(sql题目)
- 子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,关于触发器SQL语句,完美解决
- 一个关于“OLE DB 提供程序 'sqloledb' 指出该对象中没有任何列”错误的解决方法
- 关于SQL语句优化的一个问题
- 关于《一个SQL语句查询问题(查询最小值)(急)》回复里面没有正确理想的答案!
- 关于统计的一个sql问题,使用动态sql语句实现。