力扣sql简单篇练习(十)

本文提供了三道力扣平台上的SQL练习题,涉及过去30天用户活动的统计,查找丢失信息的雇员以及计算学生们参加各科测试的次数。解题方法包括使用Date_SUB函数计算日期范围,外连接处理缺失信息,以及利用笛卡尔积和IFNULL函数统计考试次数。
摘要由CSDN通过智能技术生成

力扣sql简单篇练习(十)

1 过去30天的用户活动 ||

1.1 题目内容

1.1.1 基本题目信息

在这里插入图片描述

1.1.2 示例输入输出
a 示例输入

在这里插入图片描述

b 示例输出

在这里插入图片描述

1.2 示例sql语句

# 多少天内使用Date_SUB函数,具体用法是Date_SUB(初始日期,interval 变更的天数 day) ,正数找过去负数找未来
# 变更天数=多少天-if(是否包含初始日期,1,0),
# 没分组时默认将整个表当成一组
#注意有可能没有数据就要使用ifnull
SELECT ROUND(ifnull(avg(a.number),0),2) average_sessions_per_user
FROM
(
    SELECT user_id,count(distinct session_id) number
    FROM Activity
    WHERE activity_date  between DATE_SUB('2019-07-27',interval 29 day) and '2019-07-27'
    GROUP BY user_id
)a

1.3 运行截图

在这里插入图片描述

2 丢失信息的雇员

2.1 题目内容

2.1.1 基本题目信息1

在这里插入图片描述

2.1.2 基本题目信息2

在这里插入图片描述

2.1.3 示例输入输出
a 示例输入

在这里插入图片描述

b 示例输出

在这里插入图片描述

2.2 示例sql语句

# 用外连接,不满足的条件的字段用null值来填充
SELECT e.employee_id
FROM Employees e
LEFT JOIN Salaries s
ON e.employee_id=s.employee_id
WHERE s.salary is null
UNION
SELECT s.employee_id
FROM Employees e
RIGHT JOIN Salaries s
ON e.employee_id=s.employee_id
WHERE e.name is null
ORDER BY employee_id

2.3 运行截图

在这里插入图片描述

3 学生们参加各科测试的次数

3.1 题目内容

3.1.1 基本题目信息1

在这里插入图片描述

3.1.2 基本题目信息2

在这里插入图片描述

3.1.3 示例输入输出
a 示例输入1

在这里插入图片描述

b 示例输入2

在这里插入图片描述

c 示例输出

在这里插入图片描述

3.2 示例sql语句

# 使用笛卡尔积时(cross join)需要注意其连接条件
SELECT s.student_id,s.student_name,s.subject_name,IFNULL(e.number,0) attended_exams
FROM 
(
    SELECT s1.student_id,s1.student_name,s2.subject_name
    FROM Students s1
    CROSS JOIN Subjects s2
)s
LEFT JOIN
(
    SELECT student_id,subject_name,count(*) number
    FROM Examinations
    GROUP BY student_id,subject_name
) e
ON s.student_id=e.student_id AND s.subject_name=e.subject_name
ORDER BY s.student_id asc,s.subject_name asc

3.3 运行截图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SSS4362

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值