牛客网SQL训练5—SQL大厂真题面试

文章目录

  • 一、某音短视频
    • 1.各个视频的平均完播率
    • 2.平均播放进度大于60%的视频类别
    • 3.每类视频近一个月的转发量/率
    • 4.每个创作者每月的涨粉率及截止当前的总粉丝量
    • 5.国庆期间每类视频点赞量和转发量
    • 6.近一个月发布的视频中热度最高的top3视频
  • 二、用户增长场景(某度信息流)
    • 1.2021年11月每天的人均浏览文章时长
    • 2.每篇文章同一时刻最大在看人数
    • 3.2021年11月每天新用户的次日留存率
    • 4.统计活跃间隔对用户分级结果
    • 5.每天的日活数及新用户占比
    • 6.连续签到领金币
  • 三、电商场景(某东商城)
    • 1.计算商城中2021年每月的GMV
    • 2.统计2021年10月每个退货率不大于0.5的商品各项指标
    • 3.某店铺的各商品毛利率及店铺整体毛利率
    • 4.零食类商品中复购率top3高的商品
    • 5.10月的新户客单价和获客成本
    • 6.店铺901国庆期间的7日动销率和滞销率
  • 四、出行场景(某滴打车)
    • 1.2021年国庆在北京接单3次及以上的司机统计信息
    • 2.有取消订单记录的司机平均评分
    • 3.每个城市中评分最高的司机信息
    • 4.国庆期间近7日日均取消订单量
    • 5.工作日各时段叫车量、等待接单时间和调度时间
    • 6.各城市最大同时等车人数
  • 五、某宝店铺分析(电商模式)
    • 1.某宝店铺的SPU数量
    • 2.某宝店铺的实际销售额与客单价
    • 3.某宝店铺折扣率
    • 4.某宝店铺动销率与售罄率
    • 5.某宝店铺连续2天及以上购物的用户及其对应的天数
  • 六、牛客直播课分析(在线教育行业)
    • 1.牛客直播转换率
    • 2.牛客直播开始时各直播间在线人数
    • 3.牛客直播各科目平均观看时长
    • 4.牛客直播各科目出勤率
    • 5.牛客直播各科目同时在线人数
  • 七、某乎问答(内容行业)
    • 1.某乎问答11月份日人均回答量
    • 2.某乎问答高质量的回答中用户属于各级别的数量
    • 3.某乎问答单日回答问题数大于等于3个的所有用户
    • 4.某乎问答回答过教育类问题的用户里有多少用户回答
    • 5.某乎问答最大连续回答问题天数大于等于3天的用户


一、某音短视频

1.各个视频的平均完播率

题目:计算2021年里有播放记录的每个视频的完播率(结果保留三位小数),并按完播率降序排序

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:30', 0, 1, 1, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:24', 0, 0, 1, null),(103, 2001, '2021-10-01 11:00:00', '2021-10-01 11:00:34', 0, 1, 0, 1732526),(101, 2002, '2021-09-01 10:00:00', '2021-09-01 10:00:42', 1, 0, 1, null),(102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '影视', 30, '2021-01-01 7:00:00'),(2002, 901, '美食', 60, '2021-01-01 7:00:00'),(2003, 902, '旅游', 90, '2021-01-01 7:00:00');

在这里插入图片描述

selecta.video_id,round(avg(if(TIMESTAMPDIFF(second,a.start_time,a.end_time)>=b.duration,1,0)),3) as avg_comp_play_rate
from tb_user_video_log  a
join tb_video_info b
on a.video_id=b.video_id
where year(start_time)='2021'
group by a.video_id
order by avg_comp_play_rate desc

在这里插入图片描述

2.平均播放进度大于60%的视频类别

题目:计算各类视频的平均播放进度,将进度大于60%的类别输出。

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:30', 0, 1, 1, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:24', 0, 0, 1, null),(103, 2001, '2021-10-01 11:00:00', '2021-10-01 11:00:34', 0, 1, 0, 1732526),(101, 2002, '2021-09-01 10:00:00', '2021-09-01 10:00:42', 1, 0, 1, null),(102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '影视', 30, '2021-01-01 7:00:00'),(2002, 901, '美食', 60, '2021-01-01 7:00:00'),(2003, 902, '旅游', 90, '2021-01-01 7:00:00');

在这里插入图片描述

select aa.tag,concat(avg_play_progress,'%') as avg_play_progress
from(select b.tag,round(avg(if(TIMESTAMPDIFF(second,a.start_time,a.end_time)>b.duration,100,TIMESTAMPDIFF(second,a.start_time,a.end_time)/b.duration*100)),2) as avg_play_progressfrom tb_user_video_log ajoin tb_video_info bon a.video_id=b.video_idgroup by b.tag
) aa
where aa.avg_play_progress>60
order by avg_play_progress desc

在这里插入图片描述

3.每类视频近一个月的转发量/率

题目:统计在有用户互动的最近一个月(按包含当天在内的近30天算,比如10月31日的近30天为10.2~10.31之间的数据)中,每类视频的转发量和转发率(保留3位小数)。

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:30', 0, 1, 1, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:24', 0, 0, 1, null),(103, 2001, '2021-10-01 11:00:00', '2021-10-01 11:00:34', 0, 1, 0, 1732526),(101, 2002, '2021-09-01 10:00:00', '2021-09-01 10:00:42', 1, 0, 1, null),(102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '影视', 30, '2021-01-01 7:00:00'),(2002, 901, '美食', 60, '2021-01-01 7:00:00'),(2003, 902, '旅游', 90, '2021-01-01 7:00:00');

在这里插入图片描述

select aa.tag,if_retweet_cnt as retweet_cut	,round(if_retweet_cnt/play_cnt,3) as retweet_rate
from(select b.tag,sum(a.if_retweet) as if_retweet_cnt,count(a.start_time) as play_cntfrom tb_user_video_log ajoin tb_video_info bon a.video_id=b.video_idwhere date(a.start_time)>(select DATE_SUB(date(max(start_time)),INTERVAL 30 day) from tb_user_video_log)group by b.tag
) aa 
order by retweet_rate desc

在这里插入图片描述

4.每个创作者每月的涨粉率及截止当前的总粉丝量

题目:计算2021年里每个创作者每月的涨粉率及截止当月的总粉丝量。

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:30', 0, 1, 1, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:24', 0, 0, 1, null),(103, 2001, '2021-10-01 11:00:00', '2021-10-01 11:00:34', 0, 1, 0, 1732526),(101, 2002, '2021-09-01 10:00:00', '2021-09-01 10:00:42', 1, 0, 1, null),(102, 2002, '2021-10-01 11:00:00', '2021-10-01 11:00:30', 1, 0, 1, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '影视', 30, '2021-01-01 7:00:00'),(2002, 901, '美食', 60, '2021-01-01 7:00:00'),(2003, 902, '旅游', 90, '2021-01-01 7:00:00');

在这里插入图片描述

select aa.author,aa.month,round(aa.fans_cnt/aa.play_cnt,3) as fans_growth_rate,sum(aa.fans_cnt) over(partition by aa.author order by aa.month)  as total_fans
from(select b.author,DATE_FORMAT(a.start_time,'%Y-%m') as month,sum(if(if_follow=2,-1,if_follow)) as fans_cnt,count(a.start_time) as play_cntfrom tb_user_video_log ajoin tb_video_info bon a.video_id=b.video_idwhere year(a.start_time)='2021'group by b.author,DATE_FORMAT(a.start_time,'%Y-%m')
) aa
order by aa.author,total_fans 

在这里插入图片描述

5.国庆期间每类视频点赞量和转发量

题目:统计2021年国庆头3天每类视频每天的近一周总点赞量和一周内最大单天转发量,结果按视频类别降序、日期升序排序。假设数据库中数据足够多,至少每个类别下国庆头3天及之前一周的每天都有播放记录。

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-09-24 10:00:00', '2021-09-24 10:00:20', 1, 1, 0, null),(105, 2002, '2021-09-25 11:00:00', '2021-09-25 11:00:30', 0, 0, 1, null),(102, 2002, '2021-09-25 11:00:00', '2021-09-25 11:00:30', 1, 1, 1, null),(101, 2002, '2021-09-26 11:00:00', '2021-09-26 11:00:30', 1, 0, 1, null),(101, 2002, '2021-09-27 11:00:00', '2021-09-27 11:00:30', 1, 1, 0, null),(102, 2002, '2021-09-28 11:00:00', '2021-09-28 11:00:30', 1, 0, 1, null),(103, 2002, '2021-09-29 11:00:00', '2021-09-29 11:00:30', 1, 0, 1, null),(102, 2002, '2021-09-30 11:00:00', '2021-09-30 11:00:30', 1, 1, 1, null),(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:20', 1, 1, 0, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:15', 0, 0, 1, null),(103, 2001, '2021-10-01 11:00:50', '2021-10-01 11:01:15', 1, 1, 0, 1732526),(106, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:05', 2, 0, 1, null),(107, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:05', 1, 0, 1, null),(108, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:05', 1, 1, 1, null),(109, 2002, '2021-10-03 10:59:05', '2021-10-03 11:00:05', 0, 1, 0, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '旅游', 30, '2020-01-01 7:00:00'),(2002, 901, '旅游', 60, '2021-01-01 7:00:00'),(2003, 902, '影视', 90, '2020-01-01 7:00:00'),(2004, 902, '美女', 90, '2020-01-01 8:00:00');
select a3.tag,a3.dt,a3.sum_like_cnt_7d,a3.max_retweet_cnt_7d
from(select aa.tag,aa.dt,sum(aa.if_like_cnt) over(partition by aa.tag order by aa.dt desc rows between current row and 6 following) as sum_like_cnt_7d,max(aa.if_retweet_cnt) over(partition by aa.tag order by aa.dt desc rows between current row and 6 following) as max_retweet_cnt_7dfrom(select b.tag,date(a.start_time) as dt,sum(a.if_like) as if_like_cnt,sum(a.if_retweet) as if_retweet_cntfrom tb_user_video_log ajoin tb_video_info bon a.video_id=b.video_idwhere date(a.start_time) BETWEEN '2021-09-25' AND '2021-10-03'group by b.tag,date(a.start_time)) aa
) a3
where a3.dt BETWEEN '2021-10-01'  and '2021-10-03'
order by a3.tag desc,a3.dt 

6.近一个月发布的视频中热度最高的top3视频

题目:找出近一个月发布的视频中热度最高的top3视频。

--输入:
DROP TABLE IF EXISTS tb_user_video_log, tb_video_info;
CREATE TABLE tb_user_video_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',video_id INT NOT NULL COMMENT '视频ID',start_time datetime COMMENT '开始观看时间',end_time datetime COMMENT '结束观看时间',if_follow TINYINT COMMENT '是否关注',if_like TINYINT COMMENT '是否点赞',if_retweet TINYINT COMMENT '是否转发',comment_id INT COMMENT '评论ID'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_video_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',video_id INT UNIQUE NOT NULL COMMENT '视频ID',author INT NOT NULL COMMENT '创作者ID',tag VARCHAR(16) NOT NULL COMMENT '类别标签',duration INT NOT NULL COMMENT '视频时长(秒数)',release_time datetime NOT NULL COMMENT '发布时间'
)CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_video_log(uid, video_id, start_time, end_time, if_follow, if_like, if_retweet, comment_id) VALUES(101, 2001, '2021-09-24 10:00:00', '2021-09-24 10:00:30', 1, 1, 1, null),(101, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:31', 1, 1, 0, null),(102, 2001, '2021-10-01 10:00:00', '2021-10-01 10:00:35', 0, 0, 1, null),(103, 2001, '2021-10-03 11:00:50', '2021-10-03 11:01:35', 1, 1, 0, 1732526),(106, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:04', 2, 0, 1, null),(107, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:06', 1, 0, 0, null),(108, 2002, '2021-10-02 10:59:05', '2021-10-02 11:00:05', 1, 1, 1, null),(109, 2002, '2021-10-03 10:59:05', '2021-10-03 11:00:01', 0, 1, 0, null),(105, 2002, '2021-09-25 11:00:00', '2021-09-25 11:00:30', 1, 0, 1, null),(101, 2003, '2021-09-26 11:00:00', '2021-09-26 11:00:30', 1, 0, 0, null),(101, 2003, '2021-09-30 11:00:00', '2021-09-30 11:00:30', 1, 1, 0, null);INSERT INTO tb_video_info(video_id, author, tag, duration, release_time) VALUES(2001, 901, '旅游', 30, '2021-09-05 7:00:00'),(2002, 901, '旅游', 60, '2021-09-05 7:00:00'),(2003, 902, '影视', 90, '2021-09-05 7:00:00'),(2004, 902, '影视', 90, '2021-09-05 8:00:00');

在这里插入图片描述

select aa.video_id,round((100*com_play_rate+5*like_cnt+3*comment_cnt+2*retweet_cnt)/(TIMESTAMPDIFF(day,rec_paly_date,cur_date)+1),0) as hot_index
from(selecta.video_id,avg(if(TIMESTAMPDIFF(second,a.start_time,a.end_time)>=b.duration,1,0)) as com_play_rate,sum(a.if_like) as like_cnt,count(a.comment_id) as comment_cnt,sum(a.if_retweet) as retweet_cnt,max(date(a.end_time)) as rec_paly_date,max(date(b.release_time)) as rec_release_date,max(cur_date) as cur_datefrom tb_user_video_log ajoin tb_video_info bon a.video_id=b.video_idleft join (select max(date(start_time)) as cur_date from tb_user_video_log)c on 1group by a.video_idhaving TIMESTAMPDIFF(day,rec_release_date,cur_date)<30
) aa
order by hot_index desc
limit 3

在这里插入图片描述

二、用户增长场景(某度信息流)

1.2021年11月每天的人均浏览文章时长

题目:统计2021年11月每天的人均浏览文章时长(秒数),结果保留1位小数,并按时长由短到长排序。

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(101, 9001, '2021-11-01 10:00:00', '2021-11-01 10:00:31', 0),(102, 9001, '2021-11-01 10:00:00', '2021-11-01 10:00:24', 0),(102, 9002, '2021-11-01 11:00:00', '2021-11-01 11:00:11', 0),(101, 9001, '2021-11-02 10:00:00', '2021-11-02 10:00:50', 0),(102, 9002, '2021-11-02 11:00:01', '2021-11-02 11:00:24', 0);

在这里插入图片描述

select date(in_time) as dt,round(sum(TIMESTAMPDIFF(second,in_time,out_time))/count(distinct uid),1) as avg_viiew_len_sec
from tb_user_log
where artical_id <>0 and DATE_FORMAT(in_time,'%Y-%m')='2021-11'
group by date(in_time) 
order by avg_viiew_len_sec

在这里插入图片描述

2.每篇文章同一时刻最大在看人数

题目:统计每篇文章同一时刻最大在看人数,如果同一时刻有进入也有离开时,先记录用户数增加再记录减少,结果按最大人数降序。

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(101, 9001, '2021-11-01 10:00:00', '2021-11-01 10:00:11', 0),(102, 9001, '2021-11-01 10:00:09', '2021-11-01 10:00:38', 0),(103, 9001, '2021-11-01 10:00:28', '2021-11-01 10:00:58', 0),(104, 9002, '2021-11-01 11:00:45', '2021-11-01 11:01:11', 0),(105, 9001, '2021-11-01 10:00:51', '2021-11-01 10:00:59', 0),(106, 9002, '2021-11-01 11:00:55', '2021-11-01 11:01:24', 0),(107, 9001, '2021-11-01 10:00:01', '2021-11-01 10:01:50', 0);

在这里插入图片描述

select a2.artical_id,max(a2.sum_diff) as max_uv
from (select a.artical_id,a.dt,sum(diff) over(partition by a.artical_id order by a.dt,a.diff desc) as sum_difffrom(select artical_id,in_time as dt,1 as difffrom tb_user_logwhere artical_id<>0union allselect artical_id,out_time as dt,-1 as difffrom tb_user_logwhere artical_id<>0) a 
) a2
group by a2.artical_id
order by max_uv desc

在这里插入图片描述

3.2021年11月每天新用户的次日留存率

题目:统计2021年11月每天新用户的次日留存率(保留2位小数)

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(101, 0, '2021-11-01 10:00:00', '2021-11-01 10:00:42', 1),(102, 9001, '2021-11-01 10:00:00', '2021-11-01 10:00:09', 0),(103, 9001, '2021-11-01 10:00:01', '2021-11-01 10:01:50', 0),(101, 9002, '2021-11-02 10:00:09', '2021-11-02 10:00:28', 0),(103, 9002, '2021-11-02 10:00:51', '2021-11-02 10:00:59', 0),(104, 9001, '2021-11-02 10:00:28', '2021-11-02 10:00:50', 0),(101, 9003, '2021-11-03 11:00:55', '2021-11-03 11:01:24', 0),(104, 9003, '2021-11-03 11:00:45', '2021-11-03 11:00:55', 0),(105, 9003, '2021-11-03 11:00:53', '2021-11-03 11:00:59', 0),(101, 9002, '2021-11-04 11:00:55', '2021-11-04 11:00:59', 0);

在这里插入图片描述

select a.min_in_date as dt,round(count(b.uid)/count(a.uid),2) as uv_rate
from(-- 每天新用户表selectuid,min(date(in_time)) as min_in_datefrom tb_user_loggroup by uid
) a left join(-- 用户活跃表select uid,date(in_time) as datefrom tb_user_logunionselect uid,date(out_time) as datefrom tb_user_log
) b on a.uid=b.uid and min_in_date = DATE_SUB(date,INTERVAL 1 day)
where DATE_FORMAT(a.min_in_date,'%Y-%m')='2021-11'
group by a.min_in_date
order by dt

在这里插入图片描述

4.统计活跃间隔对用户分级结果

题目:统计活跃间隔对用户分级后,各活跃等级用户占比,结果保留两位小数,且按占比降序排序。

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(109, 9001, '2021-08-31 10:00:00', '2021-08-31 10:00:09', 0),(109, 9002, '2021-11-04 11:00:55', '2021-11-04 11:00:59', 0),(108, 9001, '2021-09-01 10:00:01', '2021-09-01 10:01:50', 0),(108, 9001, '2021-11-03 10:00:01', '2021-11-03 10:01:50', 0),(104, 9001, '2021-11-02 10:00:28', '2021-11-02 10:00:50', 0),(104, 9003, '2021-09-03 11:00:45', '2021-09-03 11:00:55', 0),(105, 9003, '2021-11-03 11:00:53', '2021-11-03 11:00:59', 0),(102, 9001, '2021-10-30 10:00:00', '2021-10-30 10:00:09', 0),(103, 9001, '2021-10-21 10:00:00', '2021-10-21 10:00:09', 0),(101, 0, '2021-10-01 10:00:00', '2021-10-01 10:00:42', 1);

在这里插入图片描述

select a3.user_grade,round(count(a3.uid)/max(a3.user_cnt),2) as ratio
from(select a2.uid,a2.user_cnt,case when last_dt_diff>=30 then '流失用户'when last_dt_diff>=7 then '沉睡用户'when first_dt_diff<7 then '新晋用户'else '忠实用户' end as user_grade-- 						when last_dt_diff<7 then '忠实用户'-- 						else null end as user_gradefrom(select a.uid ,TIMESTAMPDIFF(day,first_dt,cur_dt) as first_dt_diff  -- 最早活跃日期间隔,TIMESTAMPDIFF(day,last_dt,cur_dt) as last_dt_diff  	-- 最晚活跃日期间隔,b.user_cntfrom(select 							uid,min(date(in_time)) as first_dt  -- 最早活跃日期,max(date(out_time)) as last_dt  -- 最晚活跃日期from tb_user_loggroup by uid) a left join(select max(date(out_time)) as cur_dt     -- 当前日期,count(distinct uid) as user_cnt  -- 所有用户数from tb_user_log) b on 1		) a2
) a3
group by a3.user_grade
order by ratio desc

在这里插入图片描述

5.每天的日活数及新用户占比

题目:统计每天的日活数及新用户占比

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(101, 9001, '2021-10-31 10:00:00', '2021-10-31 10:00:09', 0),(102, 9001, '2021-10-31 10:00:00', '2021-10-31 10:00:09', 0),(101, 0, '2021-11-01 10:00:00', '2021-11-01 10:00:42', 1),(102, 9001, '2021-11-01 10:00:00', '2021-11-01 10:00:09', 0),(108, 9001, '2021-11-01 10:00:01', '2021-11-01 10:01:50', 0),(108, 9001, '2021-11-02 10:00:01', '2021-11-02 10:01:50', 0),(104, 9001, '2021-11-02 10:00:28', '2021-11-02 10:00:50', 0),(106, 9001, '2021-11-02 10:00:28', '2021-11-02 10:00:50', 0),(108, 9001, '2021-11-03 10:00:01', '2021-11-03 10:01:50', 0),(109, 9002, '2021-11-03 11:00:55', '2021-11-03 11:00:59', 0),(104, 9003, '2021-11-03 11:00:45', '2021-11-03 11:00:55', 0),(105, 9003, '2021-11-03 11:00:53', '2021-11-03 11:00:59', 0),(106, 9003, '2021-11-03 11:00:45', '2021-11-03 11:00:55', 0);

在这里插入图片描述

select a2.dt                 							  			 -- 当天,a2.dau as dau                                               -- 日活数,round(ifnull(b2.uv_new_daily,0)/a2.dau,2) as uv_new_ratio   -- 新用户占比  
from(select b.dt                               		,count(distinct b.uid) as dau           -- 当天活跃用户数from(-- 用户活跃表select uid,date(in_time) as dt            -- 用户活跃当天from tb_user_logunion select uid,date(out_time) as dtfrom tb_user_log) bgroup by b.dt
) a2 left join(select a.dt                                       ,count(distinct a.uid) as uv_new_daily    -- 当天新用户数from(-- 当天新用户表select uid,min(date(in_time)) as dt      -- 出现新用户当天   from tb_user_log group by uid			) a group by a.dt
) b2 on b2.dt=a2.dt
order by a2.dt

在这里插入图片描述

6.连续签到领金币

题目:计算每个用户2021年7月以来每月获得的金币数(该活动到10月底结束,11月1日开始的签到不再获得金币)。结果按月份、ID升序排序。

--输入:
DROP TABLE IF EXISTS tb_user_log;
CREATE TABLE tb_user_log (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',artical_id INT NOT NULL COMMENT '视频ID',in_time datetime COMMENT '进入时间',out_time datetime COMMENT '离开时间',sign_in TINYINT DEFAULT 0 COMMENT '是否签到'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_log(uid, artical_id, in_time, out_time, sign_in) VALUES(101, 0, '2021-07-07 10:00:00', '2021-07-07 10:00:09', 1),(101, 0, '2021-07-08 10:00:00', '2021-07-08 10:00:09', 1),(101, 0, '2021-07-09 10:00:00', '2021-07-09 10:00:42', 1),(101, 0, '2021-07-10 10:00:00', '2021-07-10 10:00:09', 1),(101, 0, '2021-07-11 23:59:55', '2021-07-11 23:59:59', 1),(101, 0, '2021-07-12 10:00:28', '2021-07-12 10:00:50', 1),(101, 0, '2021-07-13 10:00:28', '2021-07-13 10:00:50', 1),(102, 0, '2021-10-01 10:00:28', '2021-10-01 10:00:50', 1),(102, 0, '2021-10-02 10:00:01', '2021-10-02 10:01:50', 1),(102, 0, '2021-10-03 11:00:55', '2021-10-03 11:00:59', 1),(102, 0, '2021-10-04 11:00:45', '2021-10-04 11:00:55', 0),(102, 0, '2021-10-05 11:00:53', '2021-10-05 11:00:59', 1),(102, 0, '2021-10-06 11:00:45', '2021-10-06 11:00:55', 1);

在这里插入图片描述

select c.uid, DATE_FORMAT(c.sign_dt, "%Y%m") as month,sum(case when c.sign_idx=0 then 7 when c.sign_idx=3 then 3 else 1 end) as coin
from (select b.uid, b.sign_dt,(ROW_NUMBER() over(wd_uid_dt) ) % 7 as sign_idxfrom (select a.uid,                                                  -- 用户     a.sign_dt,                                              -- 签到日期a.rn,                                                   -- 每次签到序号DATE_SUB(a.sign_dt, INTERVAL a.rn DAY) as base_dt       -- 首次签到日期from (select DISTINCT uid,                                                                 -- 用户DATE(in_time) as sign_dt,                                            -- 签到日期DENSE_RANK() over(partition by uid order by DATE(in_time)) as rn     -- 每次签到序号from tb_user_logwhere artical_id = 0 and sign_in = 1 and DATE(in_time) >= "2021-07-07" and DATE(in_time) <= "2021-10-31"   ) a) bwindow wd_uid_dt as (partition by b.uid, b.base_dt order by b.sign_dt)
) c
group by c.uid, DATE_FORMAT(c.sign_dt, "%Y%m")
order by DATE_FORMAT(c.sign_dt, "%Y%m"), c.uid;

在这里插入图片描述

三、电商场景(某东商城)

1.计算商城中2021年每月的GMV

题目:请计算商城中2021年每月的GMV,输出GMV大于10w的每月GMV,值保留到整数。

--输入:
DROP TABLE IF EXISTS tb_order_overall;
CREATE TABLE tb_order_overall (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',event_time datetime COMMENT '下单时间',total_amount DECIMAL NOT NULL COMMENT '订单总金额',total_cnt INT NOT NULL COMMENT '订单商品总件数',`status` TINYINT NOT NULL COMMENT '订单状态'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_order_overall(order_id, uid, event_time, total_amount, total_cnt, `status`) VALUES(301001, 101, '2021-10-01 10:00:00', 15900, 2, 1),(301002, 101, '2021-10-01 11:00:00', 15900, 2, 1),(301003, 102, '2021-10-02 10:00:00', 34500, 8, 0),(301004, 103, '2021-10-12 10:00:00', 43500, 9, 1),(301005, 105, '2021-11-01 10:00:00', 31900, 7, 1),(301006, 102, '2021-11-02 10:00:00', 24500, 6, 1),(391007, 102, '2021-11-03 10:00:00', -24500, 6, 2),(301008, 104, '2021-11-04 10:00:00', 55500, 12, 0);

在这里插入图片描述

select DATE_FORMAT(event_time,'%Y-%m') as month,round(sum(if(status!=2,total_amount,0)),0) as GMV
from tb_order_overall
where year(event_time)='2021'
group by month
having GMV>100000
order by GMV

在这里插入图片描述

2.统计2021年10月每个退货率不大于0.5的商品各项指标

题目:请统计2021年10月每个有展示记录的退货率不大于0.5的商品各项指标。

--输入:
DROP TABLE IF EXISTS tb_user_event;
CREATE TABLE tb_user_event (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',product_id INT NOT NULL COMMENT '商品ID',event_time datetime COMMENT '行为时间',if_click TINYINT COMMENT '是否点击',if_cart TINYINT COMMENT '是否加购物车',if_payment TINYINT COMMENT '是否付款',if_refund TINYINT COMMENT '是否退货退款'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_user_event(uid, product_id, event_time, if_click, if_cart, if_payment, if_refund) VALUES(101, 8001, '2021-10-01 10:00:00', 0, 0, 0, 0),(102, 8001, '2021-10-01 10:00:00', 1, 0, 0, 0),(103, 8001, '2021-10-01 10:00:00', 1, 1, 0, 0),(104, 8001, '2021-10-02 10:00:00', 1, 1, 1, 0),(105, 8001, '2021-10-02 10:00:00', 1, 1, 1, 0),(101, 8002, '2021-10-03 10:00:00', 1, 1, 1, 0),(109, 8001, '2021-10-04 10:00:00', 1, 1, 1, 1);

在这里插入图片描述

select a.product_id,round(click_cnt/play_cnt,3) as ctr,round(if(click_cnt>0,cart_cnt/click_cnt,0),3) as cart_rate,round(if(cart_cnt>0,payment_cnt/cart_cnt,0),3) as payment_rate,round(if(payment_cnt>0,refund_cnt/payment_cnt,0),3) as refund_rate
from(select product_id,sum(if_click) as click_cnt,count(1) as play_cnt,sum(if_cart)  as cart_cnt,sum(if_payment) as payment_cnt,sum(if_refund) as refund_cntfrom tb_user_eventwhere date_format(event_time,'%Y-%m')='2021-10' group by product_id
) a
where payment_cnt=0 or round(if(payment_cnt>0,refund_cnt/payment_cnt,0),3)<=0.5
order by a.product_id 

在这里插入图片描述

3.某店铺的各商品毛利率及店铺整体毛利率

题目:请计算2021年10月以来店铺901中商品毛利率大于24.9%的商品信息及店铺整体毛利率。

--输入:
DROP TABLE IF EXISTS tb_order_overall;
CREATE TABLE tb_order_overall (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',event_time datetime COMMENT '下单时间',total_amount DECIMAL NOT NULL COMMENT '订单总金额',total_cnt INT NOT NULL COMMENT '订单商品总件数',`status` TINYINT NOT NULL COMMENT '订单状态'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_order_overall(order_id, uid, event_time, total_amount, total_cnt, `status`) VALUES(301001, 101, '2021-10-01 10:00:00', 30000, 3, 1),(301002, 102, '2021-10-01 11:00:00', 23900, 2, 1),(301003, 103, '2021-10-02 10:00:00', 31000, 2, 1);DROP TABLE IF EXISTS tb_product_info;
CREATE TABLE tb_product_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',product_id INT NOT NULL COMMENT '商品ID',shop_id INT NOT NULL COMMENT '店铺ID',tag VARCHAR(12) COMMENT '商品类别标签',in_price DECIMAL NOT NULL COMMENT '进货价格',quantity INT NOT NULL COMMENT '进货数量',release_time datetime COMMENT '上架时间'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_order_detail;
CREATE TABLE tb_order_detail (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',product_id INT NOT NULL COMMENT '商品ID',price DECIMAL NOT NULL COMMENT '商品单价',cnt INT NOT NULL COMMENT '下单数量'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_product_info(product_id, shop_id, tag, in_price, quantity, release_time) VALUES(8001, 901, '家电', 6000, 100, '2020-01-01 10:00:00'),(8002, 902, '家电', 12000, 50, '2020-01-01 10:00:00'),(8003, 901, '3C数码', 12000, 50, '2020-01-01 10:00:00');INSERT INTO tb_order_detail(order_id, product_id, price, cnt) VALUES(301001, 8001, 8500, 2),(301001, 8002, 15000, 1),(301002, 8001, 8500, 1),(301002, 8002, 16000, 1),(301003, 8002, 14000, 1),(301003, 8003, 18000, 1);

在这里插入图片描述

select a3.product_id,concat(a3.profit_rate,'%') as profit_rate
from(selectifnull(a2.product_id,'店铺汇总') as product_id,round((1-sum(a2.in_price*a2.cnt)/sum(a2.price*a2.cnt))*100,1) as profit_ratefrom(selectc.product_id,c.price,c.cnt,a.in_pricefrom tb_order_detail c left join tb_product_info a on a.product_id=c.product_idleft join tb_order_overall b on b.order_id=c.order_idwhere date(b.event_time)>='2021-10-01' and a.shop_id='901' and b.status='1') a2 group by a2.product_idwith ROLLUPhaving profit_rate>24.9 or product_id is nullorder by a2.product_id
) a3 

在这里插入图片描述

4.零食类商品中复购率top3高的商品

题目:请统计零食类商品中复购率top3高的商品。

--输入:
DROP TABLE IF EXISTS tb_order_overall;
CREATE TABLE tb_order_overall (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',event_time datetime COMMENT '下单时间',total_amount DECIMAL NOT NULL COMMENT '订单总金额',total_cnt INT NOT NULL COMMENT '订单商品总件数',`status` TINYINT NOT NULL COMMENT '订单状态'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_product_info;
CREATE TABLE tb_product_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',product_id INT NOT NULL COMMENT '商品ID',shop_id INT NOT NULL COMMENT '店铺ID',tag VARCHAR(12) COMMENT '商品类别标签',in_price DECIMAL NOT NULL COMMENT '进货价格',quantity INT NOT NULL COMMENT '进货数量',release_time datetime COMMENT '上架时间'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_order_detail;
CREATE TABLE tb_order_detail (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',product_id INT NOT NULL COMMENT '商品ID',price DECIMAL NOT NULL COMMENT '商品单价',cnt INT NOT NULL COMMENT '下单数量'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_product_info(product_id, shop_id, tag, in_price, quantity, release_time) VALUES(8001, 901, '零食', 60, 1000, '2020-01-01 10:00:00'),(8002, 901, '零食', 140, 500, '2020-01-01 10:00:00'),(8003, 901, '零食', 160, 500, '2020-01-01 10:00:00');INSERT INTO tb_order_overall(order_id, uid, event_time, total_amount, total_cnt, `status`) VALUES(301001, 101, '2021-09-30 10:00:00', 140, 1, 1),(301002, 102, '2021-10-01 11:00:00', 235, 2, 1),(301011, 102, '2021-10-31 11:00:00', 250, 2, 1),(301003, 101, '2021-11-02 10:00:00', 300, 2, 1),(301013, 105, '2021-11-02 10:00:00', 300, 2, 1),(301005, 104, '2021-11-03 10:00:00', 170, 1, 1);INSERT INTO tb_order_detail(order_id, product_id, price, cnt) VALUES(301001, 8002, 150, 1),(301011, 8003, 200, 1),(301011, 8001, 80, 1),(301002, 8001, 85, 1),(301002, 8003, 180, 1),(301003, 8002, 140, 1),(301003, 8003, 180, 1),(301013, 8002, 140, 2),(301005, 8003, 180, 1);

在这里插入图片描述

select a2.product_id,round(sum(a2.repurchase)/count(a2.repurchase),3) as repurchase_rate
from(select a.product_id,b.uid,if(count(b.event_time)>1,1,0) as repurchasefrom tb_order_overall bjoin tb_order_detail c on b.order_id=c.order_idjoin tb_product_info a on a.product_id=c.product_idwhere a.tag='零食' and date(b.event_time) > (select DATE_SUB(max(date(event_time)),INTERVAL 90 day) from tb_order_overall)group by a.product_id,b.uid
) a2
group by a2.product_id
order by repurchase_rate desc,a2.product_id 
limit 3;

在这里插入图片描述

5.10月的新户客单价和获客成本

题目:请计算2021年10月商城里所有新用户的首单平均交易金额(客单价)和平均获客成本(保留一位小数)。

--输入:
DROP TABLE IF EXISTS tb_order_overall;
CREATE TABLE tb_order_overall (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',event_time datetime COMMENT '下单时间',total_amount DECIMAL NOT NULL COMMENT '订单总金额',total_cnt INT NOT NULL COMMENT '订单商品总件数',`status` TINYINT NOT NULL COMMENT '订单状态'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_product_info;
CREATE TABLE tb_product_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',product_id INT NOT NULL COMMENT '商品ID',shop_id INT NOT NULL COMMENT '店铺ID',tag VARCHAR(12) COMMENT '商品类别标签',in_price DECIMAL NOT NULL COMMENT '进货价格',quantity INT NOT NULL COMMENT '进货数量',release_time datetime COMMENT '上架时间'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_order_detail;
CREATE TABLE tb_order_detail (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',product_id INT NOT NULL COMMENT '商品ID',price DECIMAL NOT NULL COMMENT '商品单价',cnt INT NOT NULL COMMENT '下单数量'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_product_info(product_id, shop_id, tag, in_price, quantity, release_time) VALUES(8001, 901, '日用', 60, 1000, '2020-01-01 10:00:00'),(8002, 901, '零食', 140, 500, '2020-01-01 10:00:00'),(8003, 901, '零食', 160, 500, '2020-01-01 10:00:00'),(8004, 902, '零食', 130, 500, '2020-01-01 10:00:00');INSERT INTO tb_order_overall(order_id, uid, event_time, total_amount, total_cnt, `status`) VALUES(301002, 102, '2021-10-01 11:00:00', 235, 2, 1),(301003, 101, '2021-10-02 10:00:00', 300, 2, 1),(301005, 104, '2021-10-03 10:00:00', 160, 1, 1);INSERT INTO tb_order_detail(order_id, product_id, price, cnt) VALUES(301002, 8001, 85, 1),(301002, 8003, 180, 1),(301003, 8004, 140, 1),(301003, 8003, 180, 1),(301005, 8003, 180, 1);

在这里插入图片描述

select round(avg(total_amount), 1) as avg_amount,round(avg(raw_amount-total_amount), 1) as avg_cost
from (select uid, total_amount, raw_amountfrom(select distinct uid,first_value(event_time) over(wd_uid_first) as event_time,first_value(order_id) over(wd_uid_first) as order_id,first_value(total_amount) over(wd_uid_first) as total_amountfrom tb_order_overallwindow wd_uid_first as (partition by uid order by event_time))a join (select order_id, sum(price * cnt) as raw_amountfrom tb_order_detailgroup by order_id)b on a.order_id=b.order_idwhere date_format(event_time, '%Y-%m') = '2021-10'
)c

在这里插入图片描述

6.店铺901国庆期间的7日动销率和滞销率

题目:请计算店铺901在2021年国庆头3天的7日动销率和滞销率,结果保留3位小数,按日期升序排序。

--输入:
DROP TABLE IF EXISTS tb_order_overall;
CREATE TABLE tb_order_overall (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',event_time datetime COMMENT '下单时间',total_amount DECIMAL NOT NULL COMMENT '订单总金额',total_cnt INT NOT NULL COMMENT '订单商品总件数',`status` TINYINT NOT NULL COMMENT '订单状态'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_product_info;
CREATE TABLE tb_product_info (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',product_id INT NOT NULL COMMENT '商品ID',shop_id INT NOT NULL COMMENT '店铺ID',tag VARCHAR(12) COMMENT '商品类别标签',in_price DECIMAL NOT NULL COMMENT '进货价格',quantity INT NOT NULL COMMENT '进货数量',release_time datetime COMMENT '上架时间'
) CHARACTER SET utf8 COLLATE utf8_bin;DROP TABLE IF EXISTS tb_order_detail;
CREATE TABLE tb_order_detail (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',product_id INT NOT NULL COMMENT '商品ID',price DECIMAL NOT NULL COMMENT '商品单价',cnt INT NOT NULL COMMENT '下单数量'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_product_info(product_id, shop_id, tag, in_price, quantity, release_time) VALUES(8001, 901, '日用', 60, 1000, '2020-01-01 10:00:00'),(8002, 901, '零食', 140, 500, '2020-01-01 10:00:00'),(8003, 901, '零食', 160, 500, '2020-01-01 10:00:00');INSERT INTO tb_order_overall(order_id, uid, event_time, total_amount, total_cnt, `status`) VALUES(301004, 102, '2021-09-30 10:00:00', 170, 1, 1),(301005, 104, '2021-10-01 10:00:00', 160, 1, 1),(301003, 101, '2021-10-02 10:00:00', 300, 2, 1),(301002, 102, '2021-10-03 11:00:00', 235, 2, 1);INSERT INTO tb_order_detail(order_id, product_id, price, cnt) VALUES(301004, 8002, 180, 1),(301005, 8002, 170, 1),(301002, 8001, 85, 1),(301002, 8003, 180, 1),(301003, 8002, 150, 1),(301003, 8003, 180, 1);

在这里插入图片描述

select dt, sale_rate, 1 - sale_rate as unsale_rate
from (select dt, round(min(sale_pid_cnt) / count(all_pid), 3) as sale_ratefrom (-- 国庆期间店铺901截止每天的近7天有销量的商品数select dt, count(distinct if(shop_id!=901, null, product_id)) as sale_pid_cntfrom (select distinct date(event_time) as dtfrom tb_order_overallwhere date(event_time) between '2021-10-01' and '2021-10-03') as t_datesleft join (select distinct date(event_time) as event_dt, product_idfrom tb_order_overalljoin tb_order_detail using(order_id)) as t_dt_pid on datediff(dt,event_dt) between 0 and 6left join tb_product_info using(product_id)group by dt) as t_dt_901_pid_cntleft join (-- 店铺901每个商品上架日期select date(release_time) as release_dt, product_id as all_pidfrom tb_product_infowhere shop_id=901) as t_release_dt on dt >= release_dt     -- 当天店铺901已上架在售的商品group by dt
) as t_dt_sr;

在这里插入图片描述

四、出行场景(某滴打车)

1.2021年国庆在北京接单3次及以上的司机统计信息

题目:请统计2021年国庆7天期间在北京市接单至少3次的司机的平均接单数和平均兼职收入(暂不考虑平台佣金,直接计算完成的订单费用总额),结果保留3位小数。

DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage DOUBLE COMMENT '行驶里程数',fare DOUBLE COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(101, '北京', '2021-10-01 07:00:00', '2021-10-01 07:02:00', null),(102, '北京', '2021-10-01 09:00:30', '2021-10-01 09:01:00', 9001),(101, '北京', '2021-10-01 08:28:10', '2021-10-01 08:30:00', 9002),(103, '北京', '2021-10-02 07:59:00', '2021-10-02 08:01:00', 9003),(104, '北京', '2021-10-03 07:59:20', '2021-10-03 08:01:00', 9004),(105, '北京', '2021-10-01 08:00:00', '2021-10-01 08:02:10', 9005),(106, '北京', '2021-10-01 17:58:00', '2021-10-01 18:01:00', 9006),(107, '北京', '2021-10-02 11:00:00', '2021-10-02 11:01:00', 9007),(108, '北京', '2021-10-02 21:00:00', '2021-10-02 21:01:00', 9008) ;INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9002, 101, 201, '2021-10-01 08:30:00', null, '2021-10-01 08:31:00', null, null, null),(9001, 102, 202, '2021-10-01 09:01:00', '2021-10-01 09:06:00', '2021-10-01 09:31:00', 10.0, 41.5, 5),(9003, 103, 202, '2021-10-02 08:01:00', '2021-10-02 08:15:00', '2021-10-02 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-10-03 08:01:00', '2021-10-03 08:13:00', '2021-10-03 08:31:00', 7.5, 22, 4),(9005, 105, 203, '2021-10-01 08:02:10', '2021-10-01 08:18:00', '2021-10-01 08:31:00', 15.0, 44, 5),(9006, 106, 203, '2021-10-01 18:01:00', '2021-10-01 18:09:00', '2021-10-01 18:31:00', 8.0, 25, 5),(9007, 107, 203, '2021-10-02 11:01:00', '2021-10-02 11:07:00', '2021-10-02 11:31:00', 9.9, 30, 5),(9008, 108, 203, '2021-10-02 21:01:00', '2021-10-02 21:10:00', '2021-10-02 21:31:00', 13.2, 38, 4);

在这里插入图片描述



2.有取消订单记录的司机平均评分

题目:请找到2021年10月有过取消订单记录的司机,计算他们每人全部已完成的有评分订单的平均评分及总体平均评分,保留1位小数。先按driver_id升序输出,再输出总体情况。

--输入:
DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage FLOAT COMMENT '行驶里程数',fare FLOAT COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(101, '北京', '2021-10-01 07:00:00', '2021-10-01 07:02:00', null),(102, '北京', '2021-10-01 09:00:30', '2021-10-01 09:01:00', 9001),(101, '北京', '2021-10-01 08:28:10', '2021-10-01 08:30:00', 9002),(103, '北京', '2021-10-02 07:59:00', '2021-10-02 08:01:00', 9003),(104, '北京', '2021-10-03 07:59:20', '2021-10-03 08:01:00', 9004),(105, '北京', '2021-10-01 08:00:00', '2021-10-01 08:02:10', 9005),(106, '北京', '2021-10-01 17:58:00', '2021-10-01 18:01:00', 9006),(107, '北京', '2021-10-02 11:00:00', '2021-10-02 11:01:00', 9007),(108, '北京', '2021-10-02 21:00:00', '2021-10-02 21:01:00', 9008),(109, '北京', '2021-10-08 18:00:00', '2021-10-08 18:01:00', 9009);INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9002, 101, 202, '2021-10-01 08:30:00', null, '2021-10-01 08:31:00', null, null, null),(9001, 102, 202, '2021-10-01 09:01:00', '2021-10-01 09:06:00', '2021-10-01 09:31:00', 10.0, 41.5, 5),(9003, 103, 202, '2021-10-02 08:01:00', '2021-10-02 08:15:00', '2021-10-02 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-10-03 08:01:00', '2021-10-03 08:13:00', '2021-10-03 08:31:00', 7.5, 22, 4),(9005, 105, 203, '2021-10-01 08:02:10', null, '2021-10-01 08:31:00', null, null, null),(9006, 106, 203, '2021-10-01 18:01:00', '2021-10-01 18:09:00', '2021-10-01 18:31:00', 8.0, 25.5, 5),(9007, 107, 203, '2021-10-02 11:01:00', '2021-10-02 11:07:00', '2021-10-02 11:31:00', 9.9, 30, 5),(9008, 108, 203, '2021-10-02 21:01:00', '2021-10-02 21:10:00', '2021-10-02 21:31:00', 13.2, 38, 4),(9009, 109, 203, '2021-10-08 18:01:00', '2021-10-08 18:11:50', '2021-10-08 18:51:00', 13, 40, 5);

在这里插入图片描述

3.每个城市中评分最高的司机信息

题目:请统计每个城市中评分最高的司机平均评分、日均接单量和日均行驶里程数。

--输入:
DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage FLOAT COMMENT '行驶里程数',fare FLOAT COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(101, '北京', '2021-10-01 07:00:00', '2021-10-01 07:02:00', null),(102, '北京', '2021-10-01 09:00:30', '2021-10-01 09:01:00', 9001),(101, '北京', '2021-10-01 08:28:10', '2021-10-01 08:30:00', 9002),(103, '北京', '2021-10-02 07:59:00', '2021-10-02 08:01:00', 9003),(104, '北京', '2021-10-03 07:59:20', '2021-10-03 08:01:00', 9004),(105, '北京', '2021-10-01 08:00:00', '2021-10-01 08:02:10', 9005),(106, '北京', '2021-10-01 17:58:00', '2021-10-01 18:01:00', 9006),(107, '北京', '2021-10-02 11:00:00', '2021-10-02 11:01:00', 9007),(108, '北京', '2021-10-02 21:00:00', '2021-10-02 21:01:00', 9008),(109, '北京', '2021-10-08 18:00:00', '2021-10-08 18:01:00', 9009);INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9002, 101, 202, '2021-10-01 08:30:00', null, '2021-10-01 08:31:00', null, null, null),(9001, 102, 202, '2021-10-01 09:01:00', '2021-10-01 09:06:00', '2021-10-01 09:31:00', 10.0, 41.5, 5),(9003, 103, 202, '2021-10-02 08:01:00', '2021-10-02 08:15:00', '2021-10-02 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-10-03 08:01:00', '2021-10-03 08:13:00', '2021-10-03 08:31:00', 7.5, 22, 4),(9005, 105, 203, '2021-10-01 08:02:10', null, '2021-10-01 08:31:00', null, null, null),(9006, 106, 203, '2021-10-01 18:01:00', '2021-10-01 18:09:00', '2021-10-01 18:31:00', 8.0, 25.5, 5),(9007, 107, 203, '2021-10-02 11:01:00', '2021-10-02 11:07:00', '2021-10-02 11:31:00', 9.9, 30, 5),(9008, 108, 203, '2021-10-02 21:01:00', '2021-10-02 21:10:00', '2021-10-02 21:31:00', 13.2, 38, 4),(9009, 109, 203, '2021-10-08 18:01:00', '2021-10-08 18:11:50', '2021-10-08 18:51:00', 13, 40, 5);

在这里插入图片描述


4.国庆期间近7日日均取消订单量

题目:请统计国庆头3天里,每天的近7日日均订单完成量和日均订单取消量,按日期升序排序。结果保留2位小数。

--输入:
DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage FLOAT COMMENT '行驶里程数',fare FLOAT COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(101, '北京', '2021-09-25 08:28:10', '2021-09-25 08:30:00', 9011),(102, '北京', '2021-09-25 09:00:30', '2021-09-25 09:01:00', 9012),(103, '北京', '2021-09-26 07:59:00', '2021-09-26 08:01:00', 9013),(104, '北京', '2021-09-26 07:59:00', '2021-09-26 08:01:00', 9023),(104, '北京', '2021-09-27 07:59:20', '2021-09-27 08:01:00', 9014),(105, '北京', '2021-09-28 08:00:00', '2021-09-28 08:02:10', 9015),(106, '北京', '2021-09-29 17:58:00', '2021-09-29 18:01:00', 9016),(107, '北京', '2021-09-30 11:00:00', '2021-09-30 11:01:00', 9017),(108, '北京', '2021-09-30 21:00:00', '2021-09-30 21:01:00', 9018),(102, '北京', '2021-10-01 09:00:30', '2021-10-01 09:01:00', 9002),(106, '北京', '2021-10-01 17:58:00', '2021-10-01 18:01:00', 9006),(101, '北京', '2021-10-02 08:28:10', '2021-10-02 08:30:00', 9001),(107, '北京', '2021-10-02 11:00:00', '2021-10-02 11:01:00', 9007),(108, '北京', '2021-10-02 21:00:00', '2021-10-02 21:01:00', 9008),(103, '北京', '2021-10-02 07:59:00', '2021-10-02 08:01:00', 9003),(104, '北京', '2021-10-03 07:59:20', '2021-10-03 08:01:00', 9004),(109, '北京', '2021-10-03 18:00:00', '2021-10-03 18:01:00', 9009);INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9011, 101, 211, '2021-09-25 08:30:00', '2021-09-25 08:31:00', '2021-09-25 08:54:00', 10, 35, 5),(9012, 102, 211, '2021-09-25 09:01:00', '2021-09-25 09:01:50', '2021-09-25 09:28:00', 11, 32, 5),(9013, 103, 212, '2021-09-26 08:01:00', '2021-09-26 08:03:00', '2021-09-26 08:27:00', 12, 31, 4),(9023, 104, 213, '2021-09-26 08:01:00', null, '2021-09-26 08:27:00', null, null, null),(9014, 104, 212, '2021-09-27 08:01:00', '2021-09-27 08:04:00', '2021-09-27 08:21:00', 11, 31, 5),(9015, 105, 212, '2021-09-28 08:02:10', '2021-09-28 08:04:10', '2021-09-28 08:25:10', 12, 31, 4),(9016, 106, 213, '2021-09-29 18:01:00', '2021-09-29 18:02:10', '2021-09-29 18:23:00', 11, 39, 4),(9017, 107, 213, '2021-09-30 11:01:00', '2021-09-30 11:01:40', '2021-09-30 11:31:00', 11, 38, 5),(9018, 108, 214, '2021-09-30 21:01:00', '2021-09-30 21:02:50', '2021-09-30 21:21:00', 14, 38, 5),(9002, 102, 202, '2021-10-01 09:01:00', '2021-10-01 09:06:00', '2021-10-01 09:31:00', 10.0, 41.5, 5),(9006, 106, 203, '2021-10-01 18:01:00', '2021-10-01 18:09:00', '2021-10-01 18:31:00', 8.0, 25.5, 4),(9001, 101, 202, '2021-10-02 08:30:00', null, '2021-10-02 08:31:00', null, null, null),(9007, 107, 203, '2021-10-02 11:01:00', '2021-10-02 11:07:00', '2021-10-02 11:31:00', 9.9, 30, 5),(9008, 108, 204, '2021-10-02 21:01:00', '2021-10-02 21:10:00', '2021-10-02 21:31:00', 13.2, 38, 4),(9003, 103, 202, '2021-10-02 08:01:00', '2021-10-02 08:15:00', '2021-10-02 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-10-03 08:01:00', '2021-10-03 08:13:00', '2021-10-03 08:31:00', 7.5, 22, 4),(9009, 109, 204, '2021-10-03 18:01:00', null, '2021-10-03 18:51:00', null, null, null);

在这里插入图片描述

5.工作日各时段叫车量、等待接单时间和调度时间

题目:统计周一到周五各时段的叫车量、平均等待接单时间和平均调度时间。全部以event_time-开始打车时间为时段划分依据,平均等待接单时间和平均调度时间均保留1位小数,平均调度时间仅计算完成了的订单,结果按叫车量升序排序。

--输入:
DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage FLOAT COMMENT '行驶里程数',fare FLOAT COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(107, '北京', '2021-09-20 11:00:00', '2021-09-20 11:00:30', 9017),(108, '北京', '2021-09-20 21:00:00', '2021-09-20 21:00:40', 9008),(108, '北京', '2021-09-20 18:59:30', '2021-09-20 19:01:00', 9018),(102, '北京', '2021-09-21 08:59:00', '2021-09-21 09:01:00', 9002),(106, '北京', '2021-09-21 17:58:00', '2021-09-21 18:01:00', 9006),(103, '北京', '2021-09-22 07:58:00', '2021-09-22 08:01:00', 9003),(104, '北京', '2021-09-23 07:59:00', '2021-09-23 08:01:00', 9004),(103, '北京', '2021-09-24 19:59:20', '2021-09-24 20:01:00', 9019),(101, '北京', '2021-09-24 08:28:10', '2021-09-24 08:30:00', 9011);INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9017, 107, 213, '2021-09-20 11:00:30', '2021-09-20 11:02:10', '2021-09-20 11:31:00', 11, 38, 5),(9008, 108, 204, '2021-09-20 21:00:40', '2021-09-20 21:03:00', '2021-09-20 21:31:00', 13.2, 38, 4),(9018, 108, 214, '2021-09-20 19:01:00', '2021-09-20 19:04:50', '2021-09-20 19:21:00', 14, 38, 5),(9002, 102, 202, '2021-09-21 09:01:00', '2021-09-21 09:06:00', '2021-09-21 09:31:00', 10.0, 41.5, 5),(9006, 106, 203, '2021-09-21 18:01:00', '2021-09-21 18:09:00', '2021-09-21 18:31:00', 8.0, 25.5, 4),(9007, 107, 203, '2021-09-22 11:01:00', '2021-09-22 11:07:00', '2021-09-22 11:31:00', 9.9, 30, 5),(9003, 103, 202, '2021-09-22 08:01:00', '2021-09-22 08:15:00', '2021-09-22 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-09-23 08:01:00', '2021-09-23 08:13:00', '2021-09-23 08:31:00', 7.5, 22, 4),(9005, 105, 202, '2021-09-23 10:01:00', '2021-09-23 10:13:00', '2021-09-23 10:31:00', 9, 29, 5),(9019, 103, 202, '2021-09-24 20:01:00', '2021-09-24 20:11:00', '2021-09-24 20:51:00', 10, 39, 4),(9011, 101, 211, '2021-09-24 08:30:00', '2021-09-24 08:31:00', '2021-09-24 08:54:00', 10, 35, 5);

在这里插入图片描述

6.各城市最大同时等车人数

题目:请统计各个城市在2021年10月期间,单日中最大的同时等车人数。

DROP TABLE IF EXISTS tb_get_car_record,tb_get_car_order;
CREATE TABLE tb_get_car_record (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',uid INT NOT NULL COMMENT '用户ID',city VARCHAR(10) NOT NULL COMMENT '城市',event_time datetime COMMENT '打车时间',end_time datetime COMMENT '打车结束时间',order_id INT COMMENT '订单号'
) CHARACTER SET utf8 COLLATE utf8_bin;CREATE TABLE tb_get_car_order (id INT PRIMARY KEY AUTO_INCREMENT COMMENT '自增ID',order_id INT NOT NULL COMMENT '订单号',uid INT NOT NULL COMMENT '用户ID',driver_id INT NOT NULL COMMENT '司机ID',order_time datetime COMMENT '接单时间',start_time datetime COMMENT '开始计费的上车时间',finish_time datetime COMMENT '订单结束时间',mileage FLOAT COMMENT '行驶里程数',fare FLOAT COMMENT '费用',grade TINYINT COMMENT '评分'
) CHARACTER SET utf8 COLLATE utf8_bin;INSERT INTO tb_get_car_record(uid, city, event_time, end_time, order_id) VALUES(108, '北京', '2021-10-20 08:00:00', '2021-10-20 08:00:40', 9008),(108, '北京', '2021-10-20 08:00:10', '2021-10-20 08:00:45', 9018),(102, '北京', '2021-10-20 08:00:30', '2021-10-20 08:00:50', 9002),(106, '北京', '2021-10-20 08:05:41', '2021-10-20 08:06:00', 9006),(103, '北京', '2021-10-20 08:05:50', '2021-10-20 08:07:10', 9003),(104, '北京', '2021-10-20 08:01:01', '2021-10-20 08:01:20', 9004),(103, '北京', '2021-10-20 08:01:15', '2021-10-20 08:01:30', 9019),(101, '北京', '2021-10-20 08:28:10', '2021-10-20 08:30:00', 9011);INSERT INTO tb_get_car_order(order_id, uid, driver_id, order_time, start_time, finish_time, mileage, fare, grade) VALUES(9008, 108, 204, '2021-10-20 08:00:40', '2021-10-20 08:03:00', '2021-10-20 08:31:00', 13.2, 38, 4),(9018, 108, 214, '2021-10-20 08:00:45', '2021-10-20 08:04:50', '2021-10-20 08:21:00', 14, 38, 5),(9002, 102, 202, '2021-10-20 08:00:50', '2021-10-20 08:06:00', '2021-10-20 08:31:00', 10.0, 41.5, 5),(9006, 106, 203, '2021-10-20 08:06:00', '2021-10-20 08:09:00', '2021-10-20 08:31:00', 8.0, 25.5, 4),(9003, 103, 202, '2021-10-20 08:07:10', '2021-10-20 08:15:00', '2021-10-20 08:31:00', 11.0, 41.5, 4),(9004, 104, 202, '2021-10-20 08:01:20', '2021-10-20 08:13:00', '2021-10-20 08:31:00', 7.5, 22, 4),(9019, 103, 202, '2021-10-20 08:01:30', '2021-10-20 08:11:00', '2021-10-20 08:51:00', 10, 39, 4),(9011, 101, 211, '2021-10-20 08:30:00', '2021-10-20 08:31:00', '2021-10-20 08:54:00', 10, 35, 5);

在这里插入图片描述

五、某宝店铺分析(电商模式)

1.某宝店铺的SPU数量

题目:11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。请你统计每款的SPU(货号)数量,并按SPU数量降序排序

--输入:
drop table if exists product_tb;
CREATE TABLE product_tb(
item_id char(10) NOT NULL,
style_id char(10) NOT NULL,
tag_price int(10) NOT NULL,
inventory int(10) NOT NULL
);
INSERT INTO product_tb VALUES('A001', 'A', 100,  20);
INSERT INTO product_tb VALUES('A002', 'A', 120, 30);
INSERT INTO product_tb VALUES('A003', 'A', 200,  15);
INSERT INTO product_tb VALUES('B001', 'B', 130, 18);
INSERT INTO product_tb VALUES('B002', 'B', 150,  22);
INSERT INTO product_tb VALUES('B003', 'B', 125, 10);
INSERT INTO product_tb VALUES('B004', 'B', 155,  12);
INSERT INTO product_tb VALUES('C001', 'C', 260, 25);
INSERT INTO product_tb VALUES('C002', 'C', 280,  18);

在这里插入图片描述


2.某宝店铺的实际销售额与客单价

题目:11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。请你统计实际总销售额与客单价(人均付费,总收入/总用户数,结果保留两位小数),

--输入:
drop table if exists sales_tb;
CREATE TABLE sales_tb(
sales_date date NOT NULL,
user_id int(10) NOT NULL,
item_id char(10) NOT NULL,
sales_num int(10) NOT NULL,
sales_price int(10) NOT NULL
);INSERT INTO sales_tb VALUES('2021-11-1', 1, 'A001',  1, 90);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'A002',  2, 220);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-2', 3, 'C001',  2, 500);
INSERT INTO sales_tb VALUES('2021-11-2', 4, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-3', 5, 'C001',  1, 240);
INSERT INTO sales_tb VALUES('2021-11-3', 6, 'C002',  1, 270);
INSERT INTO sales_tb VALUES('2021-11-4', 7, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-4', 8, 'B002',  1, 140);
INSERT INTO sales_tb VALUES('2021-11-4', 9, 'B001',  1, 125);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B004',  1, 150);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-6', 11, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-6', 10, 'B004',  1, 150);

在这里插入图片描述


3.某宝店铺折扣率

题目:11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。请你统计折扣率(GMV/吊牌金额,GMV指的是成交金额)

--输入:
drop table if exists product_tb;
CREATE TABLE product_tb(
item_id char(10) NOT NULL,
style_id char(10) NOT NULL,
tag_price int(10) NOT NULL,
inventory int(10) NOT NULL
);
INSERT INTO product_tb VALUES('A001', 'A', 100,  20);
INSERT INTO product_tb VALUES('A002', 'A', 120, 30);
INSERT INTO product_tb VALUES('A003', 'A', 200,  15);
INSERT INTO product_tb VALUES('B001', 'B', 130, 18);
INSERT INTO product_tb VALUES('B002', 'B', 150,  22);
INSERT INTO product_tb VALUES('B003', 'B', 125, 10);
INSERT INTO product_tb VALUES('B004', 'B', 155,  12);
INSERT INTO product_tb VALUES('C001', 'C', 260, 25);
INSERT INTO product_tb VALUES('C002', 'C', 280,  18);drop table if exists sales_tb;
CREATE TABLE sales_tb(
sales_date date NOT NULL,
user_id int(10) NOT NULL,
item_id char(10) NOT NULL,
sales_num int(10) NOT NULL,
sales_price int(10) NOT NULL
);INSERT INTO sales_tb VALUES('2021-11-1', 1, 'A001',  1, 90);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'A002',  2, 220);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-2', 3, 'C001',  2, 500);
INSERT INTO sales_tb VALUES('2021-11-2', 4, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-3', 5, 'C001',  1, 240);
INSERT INTO sales_tb VALUES('2021-11-3', 6, 'C002',  1, 270);
INSERT INTO sales_tb VALUES('2021-11-4', 7, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-4', 8, 'B002',  1, 140);
INSERT INTO sales_tb VALUES('2021-11-4', 9, 'B001',  1, 125);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B004',  1, 150);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-6', 11, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-6', 10, 'B004',  1, 150);

4.某宝店铺动销率与售罄率

题目:11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。请你统计每款的动销率(pin_rate,有销售的SKU数量/在售SKU数量)与售罄率(sell-through_rate,GMV/备货值,备货值=吊牌价*库存数),按style_id升序排序。

--输入:
drop table if exists product_tb;
CREATE TABLE product_tb(
item_id char(10) NOT NULL,
style_id char(10) NOT NULL,
tag_price int(10) NOT NULL,
inventory int(10) NOT NULL
);
INSERT INTO product_tb VALUES('A001', 'A', 100,  20);
INSERT INTO product_tb VALUES('A002', 'A', 120, 30);
INSERT INTO product_tb VALUES('A003', 'A', 200,  15);
INSERT INTO product_tb VALUES('B001', 'B', 130, 18);
INSERT INTO product_tb VALUES('B002', 'B', 150,  22);
INSERT INTO product_tb VALUES('B003', 'B', 125, 10);
INSERT INTO product_tb VALUES('B004', 'B', 155,  12);
INSERT INTO product_tb VALUES('C001', 'C', 260, 25);
INSERT INTO product_tb VALUES('C002', 'C', 280,  18);drop table if exists sales_tb;
CREATE TABLE sales_tb(
sales_date date NOT NULL,
user_id int(10) NOT NULL,
item_id char(10) NOT NULL,
sales_num int(10) NOT NULL,
sales_price int(10) NOT NULL
);INSERT INTO sales_tb VALUES('2021-11-1', 1, 'A001',  1, 90);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'A002',  2, 220);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-2', 3, 'C001',  2, 500);
INSERT INTO sales_tb VALUES('2021-11-2', 4, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-3', 5, 'C001',  1, 240);
INSERT INTO sales_tb VALUES('2021-11-3', 6, 'C002',  1, 270);
INSERT INTO sales_tb VALUES('2021-11-4', 7, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-4', 8, 'B002',  1, 140);
INSERT INTO sales_tb VALUES('2021-11-4', 9, 'B001',  1, 125);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B004',  1, 150);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-6', 11, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-6', 10, 'B004',  1, 150);

5.某宝店铺连续2天及以上购物的用户及其对应的天数

题目:11月结束后,小牛同学需要对其在某宝的网店就11月份用户交易情况和产品情况进行分析以更好的经营小店。请你统计连续2天及以上在该店铺购物的用户及其对应的次数(若有多个用户,按user_id升序排序)。

--输入:
drop table if exists sales_tb;
CREATE TABLE sales_tb(
sales_date date NOT NULL,
user_id int(10) NOT NULL,
item_id char(10) NOT NULL,
sales_num int(10) NOT NULL,
sales_price int(10) NOT NULL
);INSERT INTO sales_tb VALUES('2021-11-1', 1, 'A001',  1, 90);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'A002',  2, 220);
INSERT INTO sales_tb VALUES('2021-11-1', 2, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-2', 3, 'C001',  2, 500);
INSERT INTO sales_tb VALUES('2021-11-2', 4, 'B001',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-3', 5, 'C001',  1, 240);
INSERT INTO sales_tb VALUES('2021-11-3', 6, 'C002',  1, 270);
INSERT INTO sales_tb VALUES('2021-11-4', 7, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-4', 8, 'B002',  1, 140);
INSERT INTO sales_tb VALUES('2021-11-4', 9, 'B001',  1, 125);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'B004',  1, 150);
INSERT INTO sales_tb VALUES('2021-11-5', 10, 'A003',  1, 180);
INSERT INTO sales_tb VALUES('2021-11-6', 11, 'B003',  1, 120);
INSERT INTO sales_tb VALUES('2021-11-6', 10, 'B004',  1, 150);

六、牛客直播课分析(在线教育行业)

1.牛客直播转换率

题目:牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。请你统计每个科目的转换率(sign_rate(%),转化率=报名人数/浏览人数,结果保留两位小数)。

--输入:
drop table if exists course_tb;
CREATE TABLE course_tb(
course_id int(10) NOT NULL, 
course_name char(10) NOT NULL,
course_datetime char(30) NOT NULL);INSERT INTO course_tb VALUES(1, 'Python', '2021-12-1 19:00-21:00');
INSERT INTO course_tb VALUES(2, 'SQL', '2021-12-2 19:00-21:00');
INSERT INTO course_tb VALUES(3, 'R', '2021-12-3 19:00-21:00');drop table if exists behavior_tb;
CREATE TABLE behavior_tb(
user_id int(10) NOT NULL, 
if_vw int(10) NOT NULL,
if_fav int(10) NOT NULL,
if_sign int(10) NOT NULL,
course_id int(10) NOT NULL);INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 3);
INSERT INTO behavior_tb VALUES(101, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(101, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(101, 1, 0, 0, 3);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 3);
INSERT INTO behavior_tb VALUES(103, 1, 1, 0, 1);
INSERT INTO behavior_tb VALUES(103, 1, 0, 0, 2);
INSERT INTO behavior_tb VALUES(103, 1, 0, 0, 3);
INSERT INTO behavior_tb VALUES(104, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(104, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(104, 1, 1, 0, 3);
INSERT INTO behavior_tb VALUES(105, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(106, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(107, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(107, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(108, 1, 1, 1, 3);

2.牛客直播开始时各直播间在线人数

题目:牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。请你统计直播开始时(19:00),各科目的在线人数,以上例子的输出结果为(按照course_id升序排序)。

--输入:
CREATE TABLE course_tb(
course_id int(10) NOT NULL, 
course_name char(10) NOT NULL,
course_datetime char(30) NOT NULL);
INSERT INTO course_tb VALUES(1, 'Python', '2021-12-1 19:00-21:00');
INSERT INTO course_tb VALUES(2, 'SQL', '2021-12-2 19:00-21:00');
INSERT INTO course_tb VALUES(3, 'R', '2021-12-3 19:00-21:00');CREATE TABLE attend_tb(
user_id int(10) NOT NULL, 
course_id int(10) NOT NULL,
in_datetime datetime NOT NULL,
out_datetime datetime NOT NULL
);
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:00:00', '2021-12-1 19:28:00');
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:30:00', '2021-12-1 19:53:00');
INSERT INTO attend_tb VALUES(101, 1, '2021-12-1 19:00:00', '2021-12-1 20:55:00');
INSERT INTO attend_tb VALUES(102, 1, '2021-12-1 19:00:00', '2021-12-1 19:05:00');
INSERT INTO attend_tb VALUES(104, 1, '2021-12-1 19:00:00', '2021-12-1 20:59:00');
INSERT INTO attend_tb VALUES(101, 2, '2021-12-2 19:05:00', '2021-12-2 20:58:00');
INSERT INTO attend_tb VALUES(102, 2, '2021-12-2 18:55:00', '2021-12-2 21:00:00');
INSERT INTO attend_tb VALUES(104, 2, '2021-12-2 18:57:00', '2021-12-2 20:56:00');
INSERT INTO attend_tb VALUES(107, 2, '2021-12-2 19:10:00', '2021-12-2 19:18:00');
INSERT INTO attend_tb VALUES(100, 3, '2021-12-3 19:01:00', '2021-12-3 21:00:00');
INSERT INTO attend_tb VALUES(102, 3, '2021-12-3 18:58:00', '2021-12-3 19:05:00');
INSERT INTO attend_tb VALUES(108, 3, '2021-12-3 19:01:00', '2021-12-3 19:56:00');

3.牛客直播各科目平均观看时长

题目:牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。请你统计每个科目的平均观看时长(观看时长定义为离开直播间的时间与进入直播间的时间之差,单位是分钟),输出结果按平均观看时长降序排序,结果保留两位小数。

--输入:
drop table if exists course_tb;
CREATE TABLE course_tb(
course_id int(10) NOT NULL, 
course_name char(10) NOT NULL,
course_datetime char(30) NOT NULL);INSERT INTO course_tb VALUES(1, 'Python', '2021-12-1 19:00-21:00');
INSERT INTO course_tb VALUES(2, 'SQL', '2021-12-2 19:00-21:00');
INSERT INTO course_tb VALUES(3, 'R', '2021-12-3 19:00-21:00');drop table if exists attend_tb;
CREATE TABLE attend_tb(
user_id int(10) NOT NULL, 
course_id int(10) NOT NULL,
in_datetime datetime NOT NULL,
out_datetime datetime NOT NULL
);
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:00:00', '2021-12-1 19:28:00');
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:30:00', '2021-12-1 19:53:00');
INSERT INTO attend_tb VALUES(101, 1, '2021-12-1 19:00:00', '2021-12-1 20:55:00');
INSERT INTO attend_tb VALUES(102, 1, '2021-12-1 19:00:00', '2021-12-1 19:05:00');
INSERT INTO attend_tb VALUES(104, 1, '2021-12-1 19:00:00', '2021-12-1 20:59:00');
INSERT INTO attend_tb VALUES(101, 2, '2021-12-2 19:05:00', '2021-12-2 20:58:00');
INSERT INTO attend_tb VALUES(102, 2, '2021-12-2 18:55:00', '2021-12-2 21:00:00');
INSERT INTO attend_tb VALUES(104, 2, '2021-12-2 18:57:00', '2021-12-2 20:56:00');
INSERT INTO attend_tb VALUES(107, 2, '2021-12-2 19:10:00', '2021-12-2 19:18:00');
INSERT INTO attend_tb VALUES(100, 3, '2021-12-3 19:01:00', '2021-12-3 21:00:00');
INSERT INTO attend_tb VALUES(102, 3, '2021-12-3 18:58:00', '2021-12-3 19:05:00');
INSERT INTO attend_tb VALUES(108, 3, '2021-12-3 19:01:00', '2021-12-3 19:56:00');

4.牛客直播各科目出勤率

题目:牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。请你统计每个科目的出勤率(attend_rate(%),结果保留两位小数),出勤率=出勤(在线时长10分钟及以上)人数 / 报名人数,输出结果按course_id升序排序,以上数据的输出结果如下。

--输入:
drop table if exists course_tb;
CREATE TABLE course_tb(
course_id int(10) NOT NULL, 
course_name char(10) NOT NULL,
course_datetime char(30) NOT NULL);INSERT INTO course_tb VALUES(1, 'Python', '2021-12-1 19:00-21:00');
INSERT INTO course_tb VALUES(2, 'SQL', '2021-12-2 19:00-21:00');
INSERT INTO course_tb VALUES(3, 'R', '2021-12-3 19:00-21:00');drop table if exists behavior_tb;
CREATE TABLE behavior_tb(
user_id int(10) NOT NULL, 
if_vw int(10) NOT NULL,
if_fav int(10) NOT NULL,
if_sign int(10) NOT NULL,
course_id int(10) NOT NULL);INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(100, 1, 1, 1, 3);
INSERT INTO behavior_tb VALUES(101, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(101, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(101, 1, 0, 0, 3);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(102, 1, 1, 1, 3);
INSERT INTO behavior_tb VALUES(103, 1, 1, 0, 1);
INSERT INTO behavior_tb VALUES(103, 1, 0, 0, 2);
INSERT INTO behavior_tb VALUES(103, 1, 0, 0, 3);
INSERT INTO behavior_tb VALUES(104, 1, 1, 1, 1);
INSERT INTO behavior_tb VALUES(104, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(104, 1, 1, 0, 3);
INSERT INTO behavior_tb VALUES(105, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(106, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(107, 1, 0, 0, 1);
INSERT INTO behavior_tb VALUES(107, 1, 1, 1, 2);
INSERT INTO behavior_tb VALUES(108, 1, 1, 1, 3);drop table if exists attend_tb;
CREATE TABLE attend_tb(
user_id int(10) NOT NULL, 
course_id int(10) NOT NULL,
in_datetime datetime NOT NULL,
out_datetime datetime NOT NULL
);
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:00:00', '2021-12-1 19:28:00');
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:30:00', '2021-12-1 19:53:00');
INSERT INTO attend_tb VALUES(101, 1, '2021-12-1 19:00:00', '2021-12-1 20:55:00');
INSERT INTO attend_tb VALUES(102, 1, '2021-12-1 19:00:00', '2021-12-1 19:05:00');
INSERT INTO attend_tb VALUES(104, 1, '2021-12-1 19:00:00', '2021-12-1 20:59:00');
INSERT INTO attend_tb VALUES(101, 2, '2021-12-2 19:05:00', '2021-12-2 20:58:00');
INSERT INTO attend_tb VALUES(102, 2, '2021-12-2 18:55:00', '2021-12-2 21:00:00');
INSERT INTO attend_tb VALUES(104, 2, '2021-12-2 18:57:00', '2021-12-2 20:56:00');
INSERT INTO attend_tb VALUES(107, 2, '2021-12-2 19:10:00', '2021-12-2 19:18:00');
INSERT INTO attend_tb VALUES(100, 3, '2021-12-3 19:01:00', '2021-12-3 21:00:00');
INSERT INTO attend_tb VALUES(102, 3, '2021-12-3 18:58:00', '2021-12-3 19:05:00');
INSERT INTO attend_tb VALUES(108, 3, '2021-12-3 19:01:00', '2021-12-3 19:56:00');

5.牛客直播各科目同时在线人数

题目:牛客某页面推出了数据分析系列直播课程介绍。用户可以选择报名任意一场或多场直播课。请你统计每个科目最大同时在线人数(按course_id排序)。

--输入:
drop table if exists course_tb;
CREATE TABLE course_tb(
course_id int(10) NOT NULL, 
course_name char(10) NOT NULL,
course_datetime char(30) NOT NULL);
INSERT INTO course_tb VALUES(1, 'Python', '2021-12-1 19:00-21:00');
INSERT INTO course_tb VALUES(2, 'SQL', '2021-12-2 19:00-21:00');
INSERT INTO course_tb VALUES(3, 'R', '2021-12-3 19:00-21:00');drop table if exists attend_tb;
CREATE TABLE attend_tb(
user_id int(10) NOT NULL, 
course_id int(10) NOT NULL,
in_datetime datetime NOT NULL,
out_datetime datetime NOT NULL
);
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:00:00', '2021-12-1 19:28:00');
INSERT INTO attend_tb VALUES(100, 1, '2021-12-1 19:30:00', '2021-12-1 19:53:00');
INSERT INTO attend_tb VALUES(101, 1, '2021-12-1 19:00:00', '2021-12-1 20:55:00');
INSERT INTO attend_tb VALUES(102, 1, '2021-12-1 19:00:00', '2021-12-1 19:05:00');
INSERT INTO attend_tb VALUES(104, 1, '2021-12-1 19:00:00', '2021-12-1 20:59:00');
INSERT INTO attend_tb VALUES(101, 2, '2021-12-2 19:05:00', '2021-12-2 20:58:00');
INSERT INTO attend_tb VALUES(102, 2, '2021-12-2 18:55:00', '2021-12-2 21:00:00');
INSERT INTO attend_tb VALUES(104, 2, '2021-12-2 18:57:00', '2021-12-2 20:56:00');
INSERT INTO attend_tb VALUES(107, 2, '2021-12-2 19:10:00', '2021-12-2 19:18:00');
INSERT INTO attend_tb VALUES(100, 3, '2021-12-3 19:01:00', '2021-12-3 21:00:00');
INSERT INTO attend_tb VALUES(102, 3, '2021-12-3 18:58:00', '2021-12-3 19:05:00');
INSERT INTO attend_tb VALUES(108, 3, '2021-12-3 19:01:00', '2021-12-3 19:56:00');

七、某乎问答(内容行业)

1.某乎问答11月份日人均回答量

题目:请你统计11月份日人均回答量(回答问题数量/答题人数),按回答日期排序,结果保留两位小数

--输入:
drop table if exists answer_tb;
CREATE TABLE answer_tb(
answer_date date NOT NULL, 
author_id int(10) NOT NULL,
issue_id char(10) NOT NULL,
char_len int(10) NOT NULL);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E001' ,150);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E002', 200);
INSERT INTO answer_tb VALUES('2021-11-1',102, 'C003' ,50);
INSERT INTO answer_tb VALUES('2021-11-1' ,103, 'P001', 35);
INSERT INTO answer_tb VALUES('2021-11-1', 104, 'C003', 120);
INSERT INTO answer_tb VALUES('2021-11-1' ,105, 'P001', 125);
INSERT INTO answer_tb VALUES('2021-11-1' , 102, 'P002', 105);
INSERT INTO answer_tb VALUES('2021-11-2',  101, 'P001' ,201);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C002', 200);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C001', 225);
INSERT INTO answer_tb VALUES('2021-11-2' , 110, 'C002', 220);
INSERT INTO answer_tb VALUES('2021-11-3', 101, 'C002', 180);
INSERT INTO answer_tb VALUES('2021-11-4' ,109, 'E003', 130);
INSERT INTO answer_tb VALUES('2021-11-4', 109, 'E001',123);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C001',160);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C002', 120);
INSERT INTO answer_tb VALUES('2021-11-5', 110, 'P001', 180);
INSERT INTO answer_tb VALUES('2021-11-5' , 106, 'P002' , 45);
INSERT INTO answer_tb VALUES('2021-11-5' , 107, 'E003', 56);

2.某乎问答高质量的回答中用户属于各级别的数量

题目:回答字数大于等于100字的认为是高质量回答,请你统计某乎问答高质量的回答中用户属于1-2级、3-4级、5-6级的数量分别是多少,按数量降序排列。

--输入:
drop table if exists author_tb;
CREATE TABLE author_tb(
author_id int(10) NOT NULL, 
author_level int(10) NOT NULL,
sex char(10) NOT NULL);
INSERT INTO author_tb VALUES(101 , 6, 'm');
INSERT INTO author_tb VALUES(102 , 1, 'f');
INSERT INTO author_tb VALUES(103 , 1, 'm');
INSERT INTO author_tb VALUES(104 , 3, 'm');
INSERT INTO author_tb VALUES(105 , 4, 'f');
INSERT INTO author_tb VALUES(106 , 2, 'f');
INSERT INTO author_tb VALUES(107 , 2, 'm');
INSERT INTO author_tb VALUES(108 , 5, 'f');
INSERT INTO author_tb VALUES(109 , 6, 'f');
INSERT INTO author_tb VALUES(110 , 5, 'm');drop table if exists answer_tb;
CREATE TABLE answer_tb(
answer_date date NOT NULL, 
author_id int(10) NOT NULL,
issue_id char(10) NOT NULL,
char_len int(10) NOT NULL);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E001' ,150);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E002', 200);
INSERT INTO answer_tb VALUES('2021-11-1',102, 'C003' ,50);
INSERT INTO answer_tb VALUES('2021-11-1' ,103, 'P001', 35);
INSERT INTO answer_tb VALUES('2021-11-1', 104, 'C003', 120);
INSERT INTO answer_tb VALUES('2021-11-1' ,105, 'P001', 125);
INSERT INTO answer_tb VALUES('2021-11-1' , 102, 'P002', 105);
INSERT INTO answer_tb VALUES('2021-11-2',  101, 'P001' ,201);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C002', 200);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C001', 225);
INSERT INTO answer_tb VALUES('2021-11-2' , 110, 'C002', 220);
INSERT INTO answer_tb VALUES('2021-11-3', 101, 'C002', 180);
INSERT INTO answer_tb VALUES('2021-11-4' ,109, 'E003', 130);
INSERT INTO answer_tb VALUES('2021-11-4', 109, 'E001',123);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C001',160);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C002', 120);
INSERT INTO answer_tb VALUES('2021-11-5', 110, 'P001', 180);
INSERT INTO answer_tb VALUES('2021-11-5' , 106, 'P002' , 45);
INSERT INTO answer_tb VALUES('2021-11-5' , 107, 'E003', 56);

3.某乎问答单日回答问题数大于等于3个的所有用户

题目:请你统计11月份单日回答问题数大于等于3个的所有用户信息(author_date表示回答日期、author_id表示创作者id,answer_cnt表示回答问题个数)。

--输入:
drop table if exists answer_tb;
CREATE TABLE answer_tb(
answer_date date NOT NULL, 
author_id int(10) NOT NULL,
issue_id char(10) NOT NULL,
char_len int(10) NOT NULL);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E001' ,150);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E002', 200);
INSERT INTO answer_tb VALUES('2021-11-1',102, 'C003' ,50);
INSERT INTO answer_tb VALUES('2021-11-1' ,103, 'P001', 35);
INSERT INTO answer_tb VALUES('2021-11-1', 104, 'C003', 120);
INSERT INTO answer_tb VALUES('2021-11-1' ,105, 'P001', 125);
INSERT INTO answer_tb VALUES('2021-11-1' , 102, 'P002', 105);
INSERT INTO answer_tb VALUES('2021-11-2',  101, 'P001' ,201);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C002', 200);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C001', 225);
INSERT INTO answer_tb VALUES('2021-11-2' , 110, 'C002', 220);
INSERT INTO answer_tb VALUES('2021-11-3', 101, 'C002', 180);
INSERT INTO answer_tb VALUES('2021-11-4' ,109, 'E003', 130);
INSERT INTO answer_tb VALUES('2021-11-4', 109, 'E001',123);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C001',160);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C002', 120);
INSERT INTO answer_tb VALUES('2021-11-5', 110, 'P001', 180);
INSERT INTO answer_tb VALUES('2021-11-5' , 106, 'P002' , 45);
INSERT INTO answer_tb VALUES('2021-11-5' , 107, 'E003', 56);

4.某乎问答回答过教育类问题的用户里有多少用户回答

题目:请你统计回答过教育类问题的用户里有多少用户回答过职场类问题。

--输入:
drop table if exists issue_tb;
CREATE TABLE issue_tb(
issue_id char(10) NOT NULL, 
issue_type char(10) NOT NULL);
INSERT INTO issue_tb VALUES('E001' ,'Education');
INSERT INTO issue_tb VALUES('E002' ,'Education');
INSERT INTO issue_tb VALUES('E003' ,'Education');
INSERT INTO issue_tb VALUES('C001', 'Career');
INSERT INTO issue_tb VALUES('C002', 'Career');
INSERT INTO issue_tb VALUES('C003', 'Career');
INSERT INTO issue_tb VALUES('C004', 'Career');
INSERT INTO issue_tb VALUES('P001' ,'Psychology');
INSERT INTO issue_tb VALUES('P002' ,'Psychology');drop table if exists answer_tb;
CREATE TABLE answer_tb(
answer_date date NOT NULL, 
author_id int(10) NOT NULL,
issue_id char(10) NOT NULL,
char_len int(10) NOT NULL);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E001' ,150);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E002', 200);
INSERT INTO answer_tb VALUES('2021-11-1',102, 'C003' ,50);
INSERT INTO answer_tb VALUES('2021-11-1' ,103, 'P001', 35);
INSERT INTO answer_tb VALUES('2021-11-1', 104, 'C003', 120);
INSERT INTO answer_tb VALUES('2021-11-1' ,105, 'P001', 125);
INSERT INTO answer_tb VALUES('2021-11-1' , 102, 'P002', 105);
INSERT INTO answer_tb VALUES('2021-11-2',  101, 'P001' ,201);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C002', 200);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C001', 225);
INSERT INTO answer_tb VALUES('2021-11-2' , 110, 'C002', 220);
INSERT INTO answer_tb VALUES('2021-11-3', 101, 'C002', 180);
INSERT INTO answer_tb VALUES('2021-11-4' ,109, 'E003', 130);
INSERT INTO answer_tb VALUES('2021-11-4', 109, 'E001',123);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C001',160);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C002', 120);
INSERT INTO answer_tb VALUES('2021-11-5', 110, 'P001', 180);
INSERT INTO answer_tb VALUES('2021-11-5' , 106, 'P002' , 45);
INSERT INTO answer_tb VALUES('2021-11-5' , 107, 'E003', 56);

5.某乎问答最大连续回答问题天数大于等于3天的用户

题目:请你统计最大连续回答问题的天数大于等于3天的用户及其等级(若有多条符合条件的数据,按author_id升序排序)。

--输入:
drop table if exists author_tb;
CREATE TABLE author_tb(
author_id int(10) NOT NULL, 
author_level int(10) NOT NULL,
sex char(10) NOT NULL);
INSERT INTO author_tb VALUES(101 , 6, 'm');
INSERT INTO author_tb VALUES(102 , 1, 'f');
INSERT INTO author_tb VALUES(103 , 1, 'm');
INSERT INTO author_tb VALUES(104 , 3, 'm');
INSERT INTO author_tb VALUES(105 , 4, 'f');
INSERT INTO author_tb VALUES(106 , 2, 'f');
INSERT INTO author_tb VALUES(107 , 2, 'm');
INSERT INTO author_tb VALUES(108 , 5, 'f');
INSERT INTO author_tb VALUES(109 , 6, 'f');
INSERT INTO author_tb VALUES(110 , 5, 'm');drop table if exists answer_tb;
CREATE TABLE answer_tb(
answer_date date NOT NULL, 
author_id int(10) NOT NULL,
issue_id char(10) NOT NULL,
char_len int(10) NOT NULL);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E001' ,150);
INSERT INTO answer_tb VALUES('2021-11-1', 101, 'E002', 200);
INSERT INTO answer_tb VALUES('2021-11-1',102, 'C003' ,50);
INSERT INTO answer_tb VALUES('2021-11-1' ,103, 'P001', 35);
INSERT INTO answer_tb VALUES('2021-11-1', 104, 'C003', 120);
INSERT INTO answer_tb VALUES('2021-11-1' ,105, 'P001', 125);
INSERT INTO answer_tb VALUES('2021-11-1' , 102, 'P002', 105);
INSERT INTO answer_tb VALUES('2021-11-2',  101, 'P001' ,201);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C002', 200);
INSERT INTO answer_tb VALUES('2021-11-2',  110, 'C001', 225);
INSERT INTO answer_tb VALUES('2021-11-2' , 110, 'C002', 220);
INSERT INTO answer_tb VALUES('2021-11-3', 101, 'C002', 180);
INSERT INTO answer_tb VALUES('2021-11-4' ,109, 'E003', 130);
INSERT INTO answer_tb VALUES('2021-11-4', 109, 'E001',123);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C001',160);
INSERT INTO answer_tb VALUES('2021-11-5', 108, 'C002', 120);
INSERT INTO answer_tb VALUES('2021-11-5', 110, 'P001', 180);
INSERT INTO answer_tb VALUES('2021-11-5' , 106, 'P002' , 45);
INSERT INTO answer_tb VALUES('2021-11-5' , 107, 'E003', 56);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582749.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Python里xlwings库对Excel表格的操作(二十二)

这篇小笔记主要记录如何【用“.number_format ”函数获取单元格的文本各种属性】。前面的小笔记已整理成目录&#xff0c;可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 &#xff08;1&#xff09;如何安装导入xlwings库&#xff1b; &#xff0…

Python新年炫酷烟花秀代码

新年马上就要到来&#xff0c;烟花秀必须得安排上&#xff01; Pygame 绘制烟花的基本原理 1&#xff0c;发射阶段&#xff1a;在这一阶段烟花的形状是线性向上&#xff0c;通过设定一组大小不同、颜色不同的点来模拟“向上发射” 的运动运动&#xff0c;运动过程中 5个点被赋…

硅像素传感器文献调研(三)

写在前面&#xff1a; 引言&#xff1a;也是先总结前人的研究结果&#xff0c;重点论述其不足之处。 和该方向联系不大&#xff0c;但还是有值得学习的地方。逻辑很清晰&#xff0c;易读性很好。 1991年—场板半阻层 使用场板和半电阻层的高压平面器件 0.摘要 提出了一种…

线程基础知识(三)

前言 之前两篇文章介绍了线程的基本概念和锁的基本知识&#xff0c;本文主要是学习同步机制&#xff0c;包括使用synchronized关键字、ReentrantLock等&#xff0c;了解锁的种类&#xff0c;死锁、竞争条件等并发编程中常见的问题。 关键字synchronized synchronied关键字可…

出现频率高达80%的软件测试常见面试题合集(内附详细答案)

最近看到网上流传着各种面试经验及面试题&#xff0c;往往都是一大堆技术题目贴上去&#xff0c;但是没有答案。 为此我业余时间整理了这份软件测试基础常见的面试题及详细答案&#xff0c;望各路大牛发现不对的地方不吝赐教&#xff0c;留言即可。 01 软件测试理论部分 1.1…

Java线程池执行流程及参数详解

线程池的定义分为以下几个部分&#xff1a; public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) {...}我们分别来看…

leaflet学习笔记-初始化vue项目(一)

leaflet简介 Leaflet是一款开源的轻量级交互式地图可视化JavaScript库&#xff0c;能够满足大多数开发者的地图可视化需求&#xff0c;其最早的版本大小仅仅38 KB。Leaflet能够在主流的计算机或移动设备上高效运行&#xff0c;其功能可通过插件进行扩展&#xff0c;拥有易于使用…

金睛云华斩获ISC2023数字安全创新能力百强 五项殊荣!

昨日&#xff0c;由北京市通州区人民政府指导&#xff1b;中关村科技园区通州园管理委员会、ISC平台主办的ISC2023数字安全创新能力百强颁奖典礼在京举行。金睛云华以卓越的产品创新实力&#xff0c;一举斩获网络与流量安全、威胁检测与响应、AI驱动安全、创新力十强、年度十强…

【JavaEE】多线程(6) -- 定时器的使用及实现

目录 定时器是什么 标准库中的定时器的使用 实现定时器 定时器是什么 Java中的定时器是一种机制&#xff0c;用于在预定时间执行某个任务。它允许开发人员在指定的时间间隔内重复执行任务&#xff0c;或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具&#xf…

本地部署 text-generation-webui

本地部署 text-generation-webui 0. 背景1. text-generation-webui 介绍2. 克隆代码3. 创建虚拟环境4. 安装 pytorch5. 安装 CUDA 运行时库6. 安装依赖库7. 启动 Web UI8. 访问 Web UI9. OpenAI 兼容 API 0. 背景 一直喜欢用 FastChat 本地部署大语言模型&#xff0c;今天试一…

web3方向产品调研

每次互联网形态的改变&#xff0c;都会对世界产生很大的影响&#xff0c;上一次对社会产生重大影响的互联网形态&#xff08;Web2.0&#xff09;催生了一批改变人类生活和信息交互方式的企业。 目录 概述DAO是什么&#xff1f;为什么我们需要DAO? 金融服务金融桥接及周边服务D…

Spring AOP—深入动态代理 万字详解(通俗易懂)

目录 一、前言 二、动态代理快速入门 1.为什么需要动态代理&#xff1f; : 2.动态代理使用案例&#xff1a; 3.动态代理的灵活性 : 三、深入动态代理 1.需求 : 2.实现 : 2.1 接口和实现类 2.2 提供代理对象的类 2.3 测试类 3.引出AOP : 四、总结 一、前言 第四节内容&…

Mybatis行为配置之Ⅱ—结果相关配置项说明

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL 文章目录 专栏精选引言摘要正文autoMappingBehaviorautoMappingU…

基于遗传算法的航线规划

MATLAB2016b可以正常运行 基于遗传算法的无人机航线规划资源-CSDN文库

代码随想录算法训练营Day13 |104.二叉树的最大深度、559.N叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

LeetCode 104 二叉树的最大深度 本题思想&#xff1a;用后序遍历的思想&#xff0c;先判断出左子树的深度&#xff0c;然后在右子树的深度。最后取大的那一个再加上根节点。就是最大深度。 class Solution {public int maxDepth(TreeNode root) {if(root null){return 0;}int…

(13)Linux 进程的优先级、进程的切换以及环境变量等

前言&#xff1a;我们先讲解进程的优先级。然后讲解进程的切换&#xff0c;最后我们讲解环境变量&#xff0c;并且做一个 "让自己的可执行程序不带路径也能执行"的实践&#xff0c;讲解环境变量的到如何删除&#xff0c;最后再讲几个常见的环境变量。 一、进程优先级…

跟着LearnOpenGL学习10--基础光照

文章目录 一、前言二、环境光照三、漫反射光照3.1、法向量3.2、计算漫反射光照3.3、全部代码3.4、法线矩阵 四、镜面光照4.1、全部代码 一、前言 现实世界的光照是极其复杂的&#xff0c;而且会受到诸多因素的影响&#xff0c;这是我们有限的计算能力所无法模拟的。 因此Open…

使用Rust发送邮件

SMTP协议与MIME协议 SMTP&#xff08;简单邮件传输协议,Simple Mail Transfer Protocol&#xff09;是一种用于发送和接收电子邮件的互联网标准通信协议。它定义了电子邮件服务器如何相互发送、接收和中继邮件。SMTP 通常用于发送邮件&#xff0c;而邮件的接收通常由 POP&#…

响应式绑定<a-textarea>的内容

项目中的 <a-textarea>组件需要自动填入下方数据表的物品名称数量单位&#xff0c;效果如下&#xff1a; 尝试 <a-textarea>{{插值}}</a-textarea>&#xff0c;实现不了&#xff0c;问ai得知需要使用v-decorator 指令的initialValue 属性 问&#xff1a; 如何…

地震烈度速报与预警工程成功案例的经验分享 | TDengine 技术培训班第一期成功落地

近日&#xff0c;涛思数据在成都开设了“国家地震烈度速报与预警工程数据库 TDengine、消息中间件 TMQ 技术培训班”&#xff0c;这次培训活动共分为三期&#xff0c;而本次活动是第一期。其目标是帮助参与者深入了解 TDengine 和 TMQ 的技术特点和应用场景&#xff0c;并学习如…