sql server 同一列的相同数据 则给与同一个一个编号

qq_41679032 qq_41679032 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
之前找大神处理过,但是行数少的话可以处理,关键我这数据量有好几万行数
跑了十几分钟跑不出来 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
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
qq_41679032
疑难问题 22,298 成员 121,727 内容