一样😭
点赞 评论

相关推荐

01-20 10:55
已编辑
北京邮电大学 C++
1. 什么是C++中的模板特化?2. 什么是多态?如何在C++中实现?3. 什么是虚函数?它的作用是什么?4. C++中的构造函数和析构函数有什么区别?5. 什么是抽象类和接口?如何定义它们?6. C++中的类型转换有哪些方式?7. 什么是命名空间的嵌套?如何使用?8. 如何使用std::mutex进行线程同步?9. C++中的智能指针如何实现自定义删除器?10. 什么是RAII的优点?11. C++中的const修饰符有什么作用?12. 如何实现一个简单的单例模式?13. 什么是C++中的内存对齐?14. 如何使用std::atomic实现原子操作?15. C++11引入的std::initializer_list是什么?16. 如何使用std::tuple?它的使用场景是什么?17. C++中的decltype有什么作用?18. 什么是函数对象(Functors)?19. 如何实现一个简单的事件机制?20. C++中的std::move和std::forward有什么区别?21. 什么是Lambda捕获?如何使用?22. C++中的std::promise和std::future是什么?23. 如何使用std::chrono进行时间测量?24. C++中的std::array如何与std::vector进行比较?25. 什么是std::string_view?它的优点是什么?26. C++中的using和typedef有什么区别?27. 如何实现一个简单的观察者模式?28. C++中的std::any是什么?如何使用?29. 什么是C++中的异常安全保证?30. 如何使用std::filesystem处理文件系统操作?31. C++中的constexpr函数有什么限制?32. 什么是std::optional的使用场景?33. 如何在C++中实现一个简单的线程池?34. C++中的std::string如何支持拼接和查找?35. 什么是C++中的static_assert?有什么用?36. 如何使用std::copy和std::move进行拷贝和移动?37. C++中的std::vector如何动态调整大小?38. 如何在C++中实现一个简单的计时器?39. C++中的std::list和std::vector的内存使用有什么不同?40. 什么是C++中的命名空间别名?如何使用?41. 如何使用std::variant进行类型安全的联合体?42. C++中的std::shared_mutex如何实现读写锁?43. 如何在C++中实现一个简单的状态机?44. C++中的std::function如何与回调函数结合使用?45. 什么是C++中的虚表(vtable)?46. 如何使用std::for_each和Lambda表达式遍历容器?47. C++中的std::unordered_map是如何实现的?48. 如何使用std::map和std::set进行排序?49. C++中的std::unique_lock和std::lock_guard有什么区别?50. 如何在C++中实现一个简单的命令模式?问题答案已经整理到专栏中了,关注我分享更多知识。   http://daxprogram.com
点赞 评论 收藏
分享
用户表user_id  user_big_type user_mid_type fst_login_date100001    上海市          徐汇区       2016-01-02用户登录表user_id    login_date100001       2016-03-03时间维度表date_id       date_name  date_year1        1900-01-01    1900....40000     2016-01-01    2016求上海市用户的留存率(用sql语句写以下的逻辑)维度 第一周的留存率    第二周的留存率    第三周的留存率    第四周的留存率上海市       50%             30%             20%             15%注:第几周为第一次登录开始每7天为一周,如用户2016-03-01为首次登录,那么 第一周从2016-03-02至2016-03-08,一天内有多次登录只算一次/*--计算日期 2022-03-29                          2-8       9-15   16-22  23-29user_id    | user_big_type    | fst_login_date | login_date  | w1   | w2   |  w3  |  w4 |fm1| fm2 | fm3 | fm4100001 |  上海市       |  2022-01-01   | 2022-01-02 | 1      |    0  |  0  |  0   |    1 |  1 |   1  |  1100001 |  上海市       |  2022-01-01   | 2022-01-08 | 1      |    0  |  0  |  0   |    1 |  1 |   1  |  1100001 |  上海市       |  2022-01-01   | 2022-01-13 | 0      |    1  |  0  |  0   |    1 |  1 |   1  |  1100001 |  上海市       |  2022-01-01   | 2022-01-19  | 0      |    0  |  1  |  0  |    1 |  1 |   1  |  1100001 |  上海市       |  2022-01-01   | 2022-01-30  | 0      |    0  |  0  |  0  |    1 |  1 |   1  |  1100001 |  上海市       |  2022-01-01   | 2022-01-31  | 0      |    0  |  0  |  0  |    1 |  1 |   1  |  1100002 |  上海市       |  2022-03-27   | 2022-03-28 | 1      |    0  |  0  |  0  |   1  |  0 |  0   |  0*/代码:with tmp as (--为用户每周是否留存打上标记,如果来了,为1,如果没来为0--计算周活跃度的分母,计算日期如果离首次登陆日期太近的话,有些数据根本就没有第二周,第三周的数据,会导致分母变大(严格来说应该剔除这些数据)SELECTt1.user_id,t1.user_big_type,max(if(datediff(t2.login_date,t1.fst_login_date) BETWEEN  1 AND 7  ,1,0)) as w1, --第一周是否活跃的标记,活跃为1,不活跃为0max(if(datediff(t2.login_date,t1.fst_login_date) BETWEEN  8 AND 14 ,1,0)) as w2, --第二周是否活跃的标记,活跃为1,不活跃为0max(if(datediff(t2.login_date,t1.fst_login_date) BETWEEN 15 AND 21 ,1,0)) as w3, --第三周是否活跃的标记,活跃为1,不活跃为0max(if(datediff(t2.login_date,t1.fst_login_date) BETWEEN 22 AND 28 ,1,0)) as w4--第四周是否活跃的标记,活跃为1,不活跃为0max(if(datediff('2022-03-29',t1.fst_login_date)>0,1,0)) as fm1,--判断用户的第一次登陆时间与当前时间的差值,判断其是否可以参与第一周活跃总人数的计算max(if(datediff('2022-03-29',t1.fst_login_date)>7,1,0)) as fm2,--判断用户的第一次登陆时间与当前时间的差值,判断其是否可以参与第二周活跃总人数的计算max(if(datediff('2022-03-29',t1.fst_login_date)>14,1,0)) as fm3,    --判断用户的第一次登陆时间与当前时间的差值,判断其是否可以参与第三周活跃总人数的计算max(if(datediff('2022-03-29',t1.fst_login_date)>21,1,0)) as fm4     --判断用户的第一次登陆时间与当前时间的差值,判断其是否可以参与第四周活跃总人数的计算FROM(--从用户表中获取上海市的数据SELECTuser_id,user_big_type,fst_login_dateFROM tb_userWHERE user_big_type='上海市') t1JOIN(--一个用户一天可能会登录多次,一天只需要留一天登录数据,jion时可以减少数据量SELECTuser_id,login_dateFROM tb_loginGROUP BY user_id,login_date) t2ON t1.user_id=t2.user_idGROUP BY t1.user_id,t1.user_big_type) SELECTuser_big_type as '维度',sum(w1)/sum(fm1) as '第一周的留存率',sum(w2)/sum(fm2) as '第二周的留存率',sum(w3)/sum(fm3) as '第三周的留存率',sum(w4)/sum(fm4) as '第四周的留存率',FROM tmp
查看1道真题和解析 投递永辉超市等公司10个岗位
点赞 评论 收藏
分享
牛客网
牛客企业服务