当前位置: 首页 > news >正文

数据分析面试--京东

1.考察日期函数的应用

在这里插入图片描述

select Order_date, count(distinct user_id) as uv from 
(
    select user_id, Order_date, 
    row_number() over(partition by user_id order by Order_date) as new_tag
    from ord where date_diff(current_date(), Order_date)<=30
) t where new_tag=1
group by Order_date

-备注 这是用row_number的方取出每一个用户在最近一个月内第一次购买的对应的时间,然后用new_tag 给这一天打上标识r

2.考察case when

在这里插入图片描述

SELECT Gender,
SUM(CASE WHEN '年龄'<20 THEN 1 ELSE 0 END) "20以下",
SUM(CASE WHEN '年龄'>=20 AND '年龄'<=40 THEN 1 ELSE 0 END) "20~40",
SUM(CASE WHEN '年龄'>40 THEN 1 ELSE 0 END) "40以上"
from user
GROUP BY Gender;

3.考察窗口函数

在这里插入图片描述

SELECT category,product,sum_sale
(
  SELECT *,
  row_number() over(PARTITION by category ORDER BY sum_sale DESC) rank
  FROM
  (
    SELECT category,product,sum(sale_num) sum_sale
    FROM ord
    GROUP BY category,product
  )t

)t WHERE rank=1;

4.考察窗口函数和日期函数

在这里插入图片描述

解题思路,如果一个用户是连登录的,那么他的数据具有这样的特点, 
user_id, log_date 
1111      2019-01-01
1111      2019-01-02
1111      2019-01-03
如果这个用按他的登录时间排序,就可以成成下面的数据,


user_id, log_date    rank
1111      2019-01-01   1
1111      2019-01-02   2
1111      2019-01-03   3
你会惊人的发现,如果一个用户是连续登录的,那么他的log_date和rank
的差值是相等的,也就是2019-01-01减去1,等于2019-01-02减去2

SELECT user_id,sub_date,count(*) log_times

FROM
(

	SELECT user_id, date_sub(log_date, rank) sub_date_diff

	FROM
	(

		SELECT user_id,log_date,row_number()over(PARTITION by user_id order by log_date) rank

		FROM
		(

			SELECT  user_id,substr(request_tm,1,10) log_date--时截为日期

			FROM user_userlog

		)t
	)t 

)t

GROUP BY user_id,sub_date

HAVING log_times=2

相关文章:

  • DRV8323芯片电机驱动芯片常见硬件连接线路的简介
  • Android开发layer-list
  • 【三十七周】文献阅读:通过具有长期融合池化的双流卷积网络进行的第一人称动作识别
  • 器件功耗模型原理
  • 全星研发项目管理APQP软件系统:汽车零部件制造行业的高效研发利器
  • Mysql配套测试之更新篇
  • ArcPy批量将栅格文件的属性表导出为Excel表格的方法
  • 【C++ 进阶】语句:从基础到实践
  • BMS电池管理系统
  • C语言-装饰器模式详解与实践 - LED控制系统
  • 菜单(路由)权限按钮权限路由进度条
  • Sqoop 常用命令
  • stm32标准库开发需要的基本文件结构
  • CUDA 学习(4)——CUDA 编程模型
  • 线段树与扫描线 —— 详解算法思想及其C++实现
  • Normal distribution (正态分布)
  • Windows安装Jenkins配置Allure踩坑,必须单独配置当前windows系统为新的node节点,才可在工具位置中指定节点服务器allure的位置
  • C语言-访问者模式详解与实践
  • Spring boot 3.4 后 SDK 升级,暨 UI API/MCP 计划
  • 线程控制学习
  • 永久基本农田竟沦为垃圾场,湖南湘潭回应:全面启动专项整治
  • 4月份国民经济顶住压力稳定增长
  • 肖钢:一季度证券业金融科技投资强度在金融各子行业中居首
  • 英国知名歌手批政府:让AI公司免费使用艺术家作品是盗窃
  • 北斗系统全面进入11个国际组织的标准体系
  • 广东缉捕1名象牙走私潜逃非洲“红通”逃犯