超困难的SQL语句 改进

问题描述

一个表中有几千条记录我要查出在这几千条记录中连续相同的行的数据时间最小的:如下字段IDAB112007-1-9222007-2-9332007-3-9412007-3-9--两个连续的1512007-4-9622007-9-9732007-7-9--三个连续的3832007-5-9932007-4-9结果应为:IDAB412007-3-9932007-4-9--???第一问在上面的基础上改进,查询出与连续行不同下一行的时间差,比如说IDAB412007-3-9与其不同的下一条是622007-9-9这时就要计算2007-9-9与2007-3-9的时间差了--???第二问不过要考虑到也许有时下一条不同的行也可能是连续的能也就是ID为6的行没有

解决方案

解决方案二:
还是用代码处理吧,用SQL太麻烦了
解决方案三:
先算出后放临时表,再接着算一次.
解决方案四:
查出时间最小的:selectID,A,BFROM一个表WHEREID=(SELECTTOP1IDFROM一个表tWHERE一个表.A=t.AORDERBYB)
解决方案五:
用动态SQL实现,同意二楼的思想!

时间: 2024-09-13 19:44:47

超困难的SQL语句 改进的相关文章

高分悬赏 请大神指导-超级长得SQL语句,看晕你的头,求大神帮忙看一下这段SQL错在哪里。

问题描述 超级长得SQL语句,看晕你的头,求大神帮忙看一下这段SQL错在哪里. DECLARE @SQL VARCHAR(8000) SET @SQL ='SELECT A.POINT, A.WZ, A.LC, A.PL1, A.PL2, A.XS1, CASE WHEN ISNULL(A.ZDZS,'''') <> '''' THEN A.ZDZS ELSE 0 END AS ZDZS, CASE WHEN ISNULL(A.PJZ,'''') <> '''' THEN A.PJ

超详细的SQL语句语法汇总_Mysql

一.数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句)INSERT INTO 表名(字段名1, 字段名2, --) VALUES ( 值1, 值2, --); INSERT INTO 表名(字段名1, 字段名2, --)  SELECT 字段名1, 字段名2, -- FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: 'GOOD DAY'如果字段值里包含单引号' 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长

一条sql语句的改进探索

昨天同事找我,让我帮忙看两个sql问题,第一个问题是一个sql语句执行频率极高,但是目前的执行速度还是比较慢,希望我看看能不能调优一下. 另外一个问题是一个查询执行速度比较慢,但是执行频率不高. 我们还是循序渐进,一个一个来看. 第一个sql语句如下 5knr1ywqugtq8 /* TransactionLog_selectByAccRangeTrx_3 */ SELECT TRANSACTION_LOG.TRANS_DATE,        TRANSACTION_LOG.TRANS_TYP

改进数据库SQL语句进行优化的理由

数据|数据库|优化|语句 应用程序的优化通常可分为两个方面:源代码的优化和SQL语句的优化.源代码的优化在时间成本和风险上代价很高:另一方面,源代码的优化对数据库系统性能的提升收效有限. 优化的理由 1)SQL语句是对数据库(数据)进行操作的惟一途径: 2)SQL语句消耗了70%~90%的数据库资源: 3)SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: 4)SQL语句可以有不同的写法: 5)SQL语句易学,难精通. 优化技术的发展 第一

SQL语句集锦

--语 句                                功 能--数据操作SELECT      --从数据库表中检索数据行和列INSERT      --向数据库表添加新数据行DELETE      --从数据库表中删除数据行UPDATE      --更新数据库表中的数据--数据定义CREATE TABLE    --创建一个数据库表DROP TABLE     --从数据库中删除表ALTER TABLE     --修改数据库表结构CREATE VIEW     --创建

跟踪oracle中sql语句执行过程及相关知识拓展

select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00';         这个方法查询结果每条记录显示一条查询语句,且只能查询sql_text小于1000字符的,多余的会被截断.         改进一下: select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00' and sql_text

写出优美SQL语句的捷径

从事企业系统开发很多年了,在系统的工作流分析中,少不了要分析SQL语句,当系统积累到一定规模后,所涉及的数据库表会以几何数增长,因此会经常碰到很长的SQL语句,涉及到的表会达到几十张之多,当你拿到这样一段SQL时,需要分析各个表之间的关系,头就有点大!我Google了一下,没有找到对SQL语句进行断行及缩进的工具,但是工作中又经常碰到这种SQL,手动来断行及缩进的话,又是一种机械重复的工作,因此"懒"劲上来了,自己周末开发了一个简单的辅助工具,同时分享给大家,我已上传程序提供下载. 我

查找消耗CPU较大的sql语句

语句 查找消耗CPU较大的sql语句 一.使用unix系统命令查看资源 #sar 1 9 12:15:27      73      27       0       012:15:28      70      30       0       012:15:29      80      20       0       012:15:30      84      16       0       012:15:31      21       5       1      73 #top

ASP整合的一个SQL语句类

语句 我们在写ASP数据库程序的时候,通常都会用到SQL语句,而在增加数据和更新数据的时候,通常会使用一下方式:insert into message (incept,sender,title,content,sendtime,flag,issend) values ('"&incept(i)&"','"&membername&"','"&title&"','"&message&a