# 第一次登录平台的日期就代表是时间靠前的日期# 窗口函数是Mysql8版本后才能使用SELECT e.player_id,e.event_date first_login
FROM(SELECT player_id,event_date,rank()over(partitionby player_id ORDERBY event_date asc) rk
FROM Activity
)e
WHERE e.rk=1
1.3 运行截图
2 查询近30天活跃用户数
2.1 题目内容
2.1.1 基本题目信息
2.1.2 示例输入输出
2.2 示例sql语句
# 活动表里面的每一条数据都是一条记录#注意因为between是两端都包含,仅统计30天,因而间隔天数写成29天# 近多少天可可以使用考虑使用date_sub函数,第一个参数是初始日期,后面正数代表初始日期之前多少天(对应天数-1),负数代表往后推迟几天的SELECT activity_date day,count(distinct user_id) active_users
FROM Activity
WHERE activity_date between Date_SUB('2019-07-27',interval29day)and'2019-07-27'GROUPBY activity_date
2.3 运行截图
3 上升的温度
3.1 题目内容
3.1.1 基本题目信息
3.1.2 示例输入输出
3.2 示例sql语句
# TIMESTAMPDIFF(日期格式,日期1,日期2) 结果为日期2-日期1的格式化输出SELECTdistinct w2.id
FROM Weather w1
INNERJOIN Weather w2
ON TIMESTAMPDIFF(day,w1.recordDate,w2.recordDate)=1AND w2.Temperature>w1.Temperature
GCD
最大公约数Greatest Common Divisor(GCD):整数a和b的GCD是指能同时整除a和b的最大整数,记为gcd(a,b)。由于-a的因子和a的因子相同,因此gcd(a, b) gcd(al, |bl)。编码时只关注正整数的最大公约数。
GCD性质
(1) gcd(a, b) gcd(a, ab) …