暂无图片
请教个SQL
我来答
分享
刘晓华
2023-12-21
请教个SQL
暂无图片 5M

    有一表table_a,两个字段emid,dt,分别是工号和日期,需生成一个序号,按工号如果日期连续序号1,2,3...不连续就重新从1开始排,下图是例子,怎么生成这列?



我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
广州_老虎刘

with tmp1 as

(select a.*, dt-row_number() over (partition by emid order by dt) as dt_flag

from table_a a)

select b.emid,b.dt,row_number() over (partition by emid,dt_flag order by dt) as no

from tmp1 b

暂无图片 评论
暂无图片 有用 14
打赏 0
暂无图片
刘晓华
题主
2023-12-22
试过OK,谢谢刘老师
chengang
2023-12-22
这个技巧好。
user-yy

SELECT
emid,dt,
CASE
WHEN dt - LAG(dt, 1, dt) OVER (PARTITION BY emid ORDER BY dt) = 1
THEN DENSE_RANK() OVER (PARTITION BY emid ORDER BY dt)
ELSE ROW_NUMBER() OVER (PARTITION BY emid ORDER BY dt)
END AS sequence_number
FROM
table_a
ORDER BY
emid, dt;

。。。。。oracle

暂无图片 评论
暂无图片 有用 1
打赏 0
刘晓华
题主
2023-12-21
不对,是日期不连续,就重新开始从1排序,dense_rank不是这意思
回答交流
Markdown


请输入正文
提交
相关推荐
oracle如何快速上云
回答 2
60小时窗口,时间很富裕了。无论是inmdp方式或者xtts,都可以。xtts方式比较省心一些,物理方式,不用核对数据之类
Oracle_linux能安装在HP服务器吗?
回答 2
已采纳
您好,HP服务器如果装的是HPUX操作系统是可以安装Oracle数据库的,具体要查官方对应的安装包,因为不同版本的操作系统甲骨文有不同的安装包(也有可能没有,比如:xp系统就不能安装Oracle21C
oracle数据库的逻辑坏块和物理坏块监控及日常处理手段?
回答 2
做好rman备份
不同Oracle数据库数据合并
回答 9
已采纳
那你就没有别的选择了,dblink了,1T的数据,你只能一点点的来了,小表无所谓,大表的话尽量按分区来,如果没有分区,就按日期一点点的同步进来。要不一张大表上亿数据,你直接整个表搞,容易ora0155
RAC节点负载不均衡
回答 1
1、排查应用连接方式及两节点的拆分策略,如根据不同业务2、对比两个节点的连接差异,根据USERNAME,MODULE,MACHINE对比连数据量
oracle 19c,在linux上 unplug后能在window上plug吗?
回答 1
已采纳
应该是不能的,路径识别不了。在xml里面有定义路径,类似以下
CBO分几种模式,有什么区别,如何设定查看?
回答 4
已采纳
PARAMETERNAMEORDPVALIDVALUEISDEFAoptimizermode1RULEoptimizermode2CHOOSEoptimizermode3ALLROWSoptimize
Oracle 10g的集群与db都在oracle用户下, 有没有能在环境变量里写入集群sid?
回答 1
没听懂。如果你是按照官方文档来配置,环境变量中本来就有sid呀。
oracle 里创建的多个用户, 应用数据源配置的是各自的用户, 程序是一样的, 发现有串库的情况发生, A程序应该写到A用户 , 现在写到B用户下面了,怎么解决?
回答 2
已采纳
检查A用户的权限,如果权限正常,不会写到B用户的。1、查询用户有哪些角色:selectfromdbaroleprivswheregrantee'&username';2、查询角色包含哪些权限:
如果输入的雇员不存在,则抛出自定义异常,这个语句哪里有错误吗,为什么不行
回答 2
declarevenameemp.ename%type:’&ename’;vempnoemp.empno%type;vsalemp.sal%type;nnumber(10);beginsele