LVS Linxu磁盘 centos7安装 package MongoDB 北斗系统 cakephp axios vue论坛 vue修改样式 angularjs视频教程 solidworks图库 python数据 python安装教程 python的安装 python如何定义变量 eclipse安装python java抽象类 java连数据库 java怎么使用 java结束线程 java语言入门 java字符串相等 java程序设计基础 销售单软件 xs颜色 pr滤镜插件 多面硬币 1667 pr抖动特效 0x000007a 服务器文件共享软件 fireworks序列号 通灵学院在哪 追评可以删除吗 php定时任务 dh浩劫天赋 mxf是什么格式 ps图层蒙版实例教程 游戏补丁
当前位置: 首页 > 学习教程  > 编程语言

每周一

2020/11/4 14:53:34 文章标签:

怎么写老用户呢,即注册时间在本周前的用户,昨天百思不得其解,今天解决了, SELECT STRAIGHT_JOIN b.Week AS Week,COUNT(DISTINCT b.Passenger_id) AS Passenger_finish_cnt,全国 …

怎么写老用户呢,即注册时间在本周前的用户,昨天百思不得其解,今天解决了,

SELECT STRAIGHT_JOIN  
  b.Week                           AS Week
  ,COUNT(DISTINCT b.Passenger_id)  AS Passenger_finish_cnt
  ,'全国'                          AS City_name
FROM (SELECT c1.Passenger_id
    ,weekofyear(to_timestamp(Ds,'yyyyMMdd')) AS Week
    ,c1.Settlement_time
  FROM pub_cockpit_db.Dws_ord_route_p_detail_fact_ds c1
  LEFT JOIN
    (SELECT Passenger_uuid 
      ,SUBSTR(register_time,1,10) AS register_time
      ,source
    FROM pub_cockpit_db.Dm_user_basic_char_dt
    WHERE Ds = from_unixtime(unix_timestamp(date_add(now(),-1)),'yyyyMMdd')
    ) c2
  ON  c1.Passenger_id = c2.Passenger_uuid
  WHERE c1.Settlement_time is not null
  AND  c1.Ds >= from_unixtime(unix_timestamp(now() - interval 7 weeks ),'yyyyMMdd')
  AND  c2.Source = 't3app'
  AND  c2.register_time < date_sub(next_day(to_date( from_unixtime(unix_timestamp(c1.ds,'yyyyMMdd'),'yyyy-MM-dd') ),'MO'),5) 
  ) b
GROUP BY Week
  ,City_name

这段代码难度最大的一点是,如何写本周一呢,被非常厉害的旭哥解决了,牛人
ds所在周一的写法

date_sub(next_day(to_date( from_unixtime(unix_timestamp(ds,'yyyyMMdd'),'yyyy-MM-dd') ),'MO'),5)

ds所在周六的写法

date_sub(next_day(to_date( from_unixtime(unix_timestamp(ds,'yyyyMMdd'),'yyyy-MM-dd') ),'MO'),7)

对应关系
1:星期五,2:星期四,3:星期三,4:星期二,5:星期一,6:星期日,7:星期六


本文链接: http://www.dtmao.cc/news_show_350259.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?