sql语句-排序后加入序号再运算判断取想要的项

select a.id as aid,b.id as bid,a.city,a.cang,a.sid,a.time as atime,b.time as btime,a.price as aprice,b.price as bprice,a.pm as apm,b.pm as bpm from (select id,city,cang,sid,time,price,@rank:[email protected]+1 as pm  from cai,(SELECT @rank:=0) B  group by id,city,cang,time order by city,cang,sid,time) as a,(select id,city,cang,sid,time,price,@ranks:[email protected]+1 as pm  from cai,(SELECT @ranks:=0) B  group by id,city,cang,time order by city,cang,sid,time) as b where a.sid=b.sid and a.cang = b.cang and a.city = b.city and a.id<b.id and abs(a.pm-b.pm)=1 and (abs(a.price-b.price)/a.price<0.2 or abs(a.price-b.price)/b.price<0.2)

结果:

资料整理:

1.排序后插入序号

http://blog.csdn.net/k8080880/article/details/11253305

2.相邻做差参考

http://bbs.csdn.net/topics/390887686 相邻两日气温差值

http://bbs.csdn.net/topics/300153858 同行两个日期相差最小

http://zhidao.baidu.com/link?url=ic00M2Rne5CSeB9tFBizT-o_JFVRjORgn-pCOVeL5syHRQQskPJ-u5BSY70WJ9HEv3e4uBe6ohHrslYIR0NpHWvN5VH43AwgVOtj2CqxfzO 待解决一个类似的问题

3.此问题原帖

http://tieba.baidu.com/p/4200604602?pid=80233503055&cid=0#80233503055

时间: 2024-10-10 11:47:58

sql语句-排序后加入序号再运算判断取想要的项的相关文章

SQL排序后将序号填入指定字段

1.显示行号 如果数据没有删除的情况下主键与行号是一致的,但在删除某些数据,行号就与主键不一致了,这时需要查询行号就需要用新的方法,在SQL Server2005之前,需要使用临时表,但在SQL Server2005中,使用ROW_NUMBER()非常方便. 以下是一个查询语句,意思是按照cid将数据排序,然后将排序后的序号填入新建的字段rowNum. select row_number() over (order by cid) as rowNum,* from t_gene 查询结果: 2.

sql语句查询后几行数据并倒着排列

$conn = mysql_connect("数据库地址","用户名","密码"); if(!$conn) { die("mysql conn failed"); } else{ mysql_query("SET NAMES 'utf8'"); mysql_select_db("数据表",$conn); if(!$conn) { die("database selected f

sql语句查询是有关时间的运算

SELECT WmsStock.sku_id,WmsStock.stock_num,WmsStock.product_date,WmsStock.expire_date,WmsStock.cost_price,GoodsSku.sku_name,GoodsSku.barcode, CONVERT(((UNIX_TIMESTAMP(WmsStock.expire_date)-UNIX_TIMESTAMP(WmsStock.product_date))/(60*60*24)),SIGNED) AS

SQL语句排序(非常重要)

from--where--group by--having--select--distinct--order by--limit 代码块 select * from student where class='ec14' group by gender having age>18 order by name desc LIMIT 5 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 将取出的一条条记录进行分组group by,如果没有group by,则整体作为一

点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)

下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映射) 本文难度系数为三星(★★★) 本文为第四篇 第一篇 点评阿里JAVA手册之编程规约(命名风格.常量定义.代码风格.控制语句.注释规约) 第二篇 点评阿里JAVA手册之编程规约(OOP 规约 .集合处理 .并发处理 .其他) 第三篇 点评阿里JAVA手册之异常日志(异常处理 日志规约 ) 第四篇

常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》

常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop data

SqlServer教程:经典SQL语句集锦

SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server --- 创建 备份数据的 deviceUSE

sql语句操作集锦

SQL操作全集 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname

经典SQL语句大全(网络资源共享)

下列语句部分是Mssql语句,不可以在access中使用.  SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)  DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname 3.说明:备份