mysql 利用自增数据项的方法,对同一个表有某种关联的数据进行处理。(利用增加一项的方法)
来源:互联网 发布:做商城需要数据库吗 编辑:程序博客网 时间:2024/06/07 06:32
问题背景:
stage表有app_id,stage_id,submission_time等数据项。要求对该表的指定app_id的所有stage_id ,按submission_time 从小到大排序,并且相邻的两项进行做差。
另一个描述如下:
对同一个app_id的所有stage_id,按submission_time排序,第一个stage_id的submission_interval=0;
第二个stage_id的submission_interval=(第二个stage_id的submission_time-第一个stage_id的submission_time),也就是,第二个stage_id到第一个stage_id的时间间隔。。。依次类推。
select a.app_id, a.stage_id, a.submission_time, count(*)
子句:(利用增加一项的方法,增加了rownum字段)
select a.app_id, a.stage_id, a.submission_time, count(*) as rownum
子句:(利用增加一项的方法,增加了rownum字段)
select a.app_id, a.stage_id, a.submission_time, count(*) as rownum
from stage a ,stage b where a.app_id="XXXXXXX" and b.app_id=a.app_id
and a.submission_time > b.submission_time
group by a.app_id, a.stage_id , a.submission_time
说明:按submission_time排序,submission_time项是不相同的。
表a 和 表b(同一个表) 进行笛卡尔积,选择
a的每一项submission_time 大于 b的submission_time所有项分别有
0,1,2.。。。。。。。。。。。。
所以count(*) as rownum的序号可以作为submission_time的排序。
语法形式:
select * from A right join B on 条件 group by 项。
select B.submission_time-A.submission_time from
(select a.app_id, a.stage_id, a.submission_time, count(*) as rownum from stage a ,stage b where a.app_id="XXXXXXXXXX" and b.app_id=a.app_id and a.submission_time > b.submission_time group by a.app_id, a.stage_id , a.submission_time ) as A
right join
(select a.app_id, a.stage_id, a.submission_time, count(*) as rownum from stage a ,stage b where a.app_id="XXXXXXXXXX" and b.app_id=a.app_id and a.submission_time > b.submission_time group by a.app_id, a.stage_id , a.submission_time ) as B
on A.rownum+1=B.rownum
on A.rownum+1=B.rownum
group by B.rownum ;
0 0
- mysql 利用自增数据项的方法,对同一个表有某种关联的数据进行处理。(利用增加一项的方法)
- SQLServer 数据去重的一种处理方法(增加一个自增字段,利用自增,删除重复数据)
- 利用latex进行表格缩放和增加题目的方法
- Java利用String的split方法对实验数据进行简化
- 利用NSInvocation对方法进行抽象,实现对方法的加锁
- 利用ASP发送和接收XML数据的处理方法
- 利用ASP发送和接收XML数据的处理方法
- 利用ASP发送和接收XML数据的处理方法
- 利用ASP发送和接收XML数据的处理方法
- 如何利用Oracle自带的MD5对数据进行加密
- QSignalMapper类处理多信号关联同一个槽的方法(1)
- QSignalMapper类处理多信号关联同一个槽的方法(2)
- 利用Navicate把SQLServer转MYSQL的方法(连数据)
- 利用RSS进行项目沟通的方法
- 利用U盘进行软件加密的方法
- 利用U盘进行软件加密的方法
- 利用原型对原始对象的方法进行扩展(javascript面试题)
- SQL Server 2005利用分区对海量数据的处理 [转自13590--北极燕鸥]
- 四.有关关机和查看系统信息的命令
- Cannot add header view to list -- setAdapter has already been called.
- Swift--map函数浅析
- 融信(仿微信)项目朋友圈相关接口需求
- eclipse从数据库逆向生成Hibernate实体类
- mysql 利用自增数据项的方法,对同一个表有某种关联的数据进行处理。(利用增加一项的方法)
- 机器视觉开源代码集合
- 颠覆式前端UI开发框架:React
- [查异常网]-20160329-Java ConcurrentModificationException异常原因和解决方法
- Activity的四种启动模式和onNewIntent()
- 五.管理使用者和设立权限的命令
- 注解初始化控件(XUtils方式)
- 面试算法——排序
- 外观模式