暂无图片
这个SQL怎么写?
我来答
分享
暂无图片 匿名用户
这个SQL怎么写?
暂无图片 10M

现有一个表table_A,三列

staffid---工号

date----日期

cwdy---连续工作天数,如果当天没上班则cwdy=0,连续上班的第一天为1,第二天为2...

 我想把最大连续天数的这个时段取出来(例子中红色的部分)生成一个字符串如D列,

我知道用listagg可以生成1-31号的,但我这里是有条件的,是取最大连续时段?怎么写呢?

谢谢


我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
刘晓华

listagg 怎么不带rows between...子句呢?

暂无图片 评论
暂无图片 有用 0
DarkAthena

换个思路,listagg里是支持distinct的,在where条件里把0的都去掉,然后用

listagg(distinct cwdy) within group (order by cwdy) over(partition by staffid,trunc(date,'mm'))
暂无图片 评论
暂无图片 有用 0
刘晓华

是的,我后面这么搞出来了,谢谢

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏