oracle

insert into t_user_login 
SELECT round( dbms_random.value(1,10)), to_date(TRUNC(DBMS_RANDOM.VALUE(

       to_number(to_char(to_date('20201201','yyyymmdd'),'J')),

       to_number(to_char(to_date('20201231','yyyymmdd')+1,'J')))),'J')+

       DBMS_RANDOM.VALUE(1,3600)/3600

       prize_time

FROM dual;

commit;

 

 

 


--查询

with
tmp_day as  --用户登陆日期

  select distinct 
         user_id
         , to_date( to_char(login_time,'YYYY-MM-DD'),'YYYY-MM-DD')  day
  from t_user_login 
  order by day,user_id
),
tmp_min as   --用户首次登陆日期

  select   
         user_id
         ,min( to_date( to_char(login_time,'YYYY-MM-DD'),'YYYY-MM-DD')  )  min_day
  from t_user_login 
  group  by user_id
)
select distinct
     a.USER_ID, a.MIN_DAY,   b1.DAY, b3.DAY,  b7.DAY
from tmp_min a
left join tmp_day b1 
      on TO_NUMBER(b1.day - min_day) <= 1
      and b1.day <> min_day
      and a.user_id = b1.user_id
left join tmp_day b3
      on TO_NUMBER(b3.day - min_day) <= 3
      and b3.day <> min_day
      and a.user_id = b3.user_id

left join tmp_day b7
      on TO_NUMBER(b7.day - min_day) <= 7
      and b7.day <> min_day
      and a.user_id = b7.user_id
     
where a.user_id = 6      
order by a.min_day,a.user_id 
;
 select distinct 
         user_id
         , to_date( to_char(login_time,'YYYY-MM-DD'),'YYYY-MM-DD')  day
  from t_user_login 
  where user_id = 6
  order by day,user_id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值