sql server 同一列的相同数据 则给与同一个一个编号
之前找大神处理过,但是行数少的话可以处理,关键我这数据量有好几万行数
跑了十几分钟跑不出来 TOP 100的话 5秒左右几秒出来 ,
我用 DENSE_RANK() 函数能直接给分组排序 但是还得判断一层时间差值是否大于24小时才行,刚刚用sql 不是很熟悉,小白一个,得怎样写,求助,
例如:有A、B、C 三列 :
序号 城市 时间差值
1 北京 0
2 北京 150.1
3 北京 15.1
4 北京 60.2
5 上海 0
6 上海 22.3
7 南京 0
8 南京 5.6
9 深圳 0
10 深圳 22.1
以B列和C列为标准 首先判断B列相同 并且本次出现时间与上次时间大于24小时为有效 否则 标识为相同编号
1和2行 3和4行, 城市列均为 ‘北京’ 但是时间差值大于24小时(这个值是之前处理过得到的,上下两行日期的差值) 则标识不同 。
4、5行 城市列不同 则标识不同,以此类推,得到一下预期结果:
序号 城市 时间差值 标识ID
1 北京 0 1
2 北京 150.1 2
3 北京 15.1 2
4 北京 60.2 3
5 上海 0 4
6 上海 22.3 4
7 南京 0 5
8 南京 5.6 5
9 深圳 0 6
10 深圳 22.1 6
跑了十几分钟跑不出来 TOP 100的话 5秒左右几秒出来 ,
我用 DENSE_RANK() 函数能直接给分组排序 但是还得判断一层时间差值是否大于24小时才行,刚刚用sql 不是很熟悉,小白一个,得怎样写,求助,
例如:有A、B、C 三列 :
序号 城市 时间差值
1 北京 0
2 北京 150.1
3 北京 15.1
4 北京 60.2
5 上海 0
6 上海 22.3
7 南京 0
8 南京 5.6
9 深圳 0
10 深圳 22.1
以B列和C列为标准 首先判断B列相同 并且本次出现时间与上次时间大于24小时为有效 否则 标识为相同编号
1和2行 3和4行, 城市列均为 ‘北京’ 但是时间差值大于24小时(这个值是之前处理过得到的,上下两行日期的差值) 则标识不同 。
4、5行 城市列不同 则标识不同,以此类推,得到一下预期结果:
序号 城市 时间差值 标识ID
1 北京 0 1
2 北京 150.1 2
3 北京 15.1 2
4 北京 60.2 3
5 上海 0 4
6 上海 22.3 4
7 南京 0 5
8 南京 5.6 5
9 深圳 0 6
10 深圳 22.1 6
...全文
相关推荐
SQL Server 排序函数 ROW_NUMBER和RANK 用法总结
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库。
SQL Server设置主键自增长列(使用sql语句实现)
主键自增长列在进行数据插入的时候,很有用的,如可以获取返回的自增ID值,接下来将介绍SQL Server如何设置主键自增长列,感兴趣的朋友可以了解下,希望本文对你有所帮助
SQL Server 视图的创建,删除列和增加列;
视图是一个可视化的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。 假设已经通过create从表s中,创建视图,只显示学号、姓名、性别和院系共4列。 create view view_s as ( select s.sno as 学号, s.sn as 姓名, s.sex as 性别, s.dept as 院系 from s ); 现在要在这个视图基础上,删除 性别 这一列,使用关键字 alter, 语句如下。 alter view view_s as ( select s.sno as 学号, s.sn as 姓名
推荐SQL Server 重新恢复自动编号列的序号的sql代码
推荐SQL Server 重新恢复自动编号列的序号的sql代码
SQL Server表中添加新列并添加描述
主要介绍了SQL Server表中添加新列并添加描述的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下


疑难问题
