力扣sql基础篇(六)
创始人
2024-05-11 07:14:48

力扣sql基础篇(六)

1 学生参加各科测试的次数

1.1 题目内容

1.1.1 基本题目信息

在这里插入图片描述

1.1.2 示例输入输出

a 输入示例

在这里插入图片描述

b 输出示例

在这里插入图片描述

1.2 示例sql语句

# 无论考没考试都要该科目这栏且无连接字段,就可以考虑笛卡尔积了
SELECT  s.student_id,s.student_name,s.subject_name,IFNULL(e.num,0) attended_exams
FROM
(SELECT *FROM StudentsCROSS JOIN Subjects
)s
LEFT JOIN
(SELECT student_id,subject_name,count(*) numFROM ExaminationsGROUP 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;

1.3 运行截图

在这里插入图片描述

2 可以放心投资的国家

2.1 题目内容

2.1.1 基本题目信息1

在这里插入图片描述

2.1.2 基本题目信息2

在这里插入图片描述

2.1.3 示例输入输出

a 示例输入

在这里插入图片描述

b 示例输出

在这里插入图片描述

2.2 示例sql语句

# 先求出每个国家的平均通话时长,在求出全球通话时长,然后把两者进行比较即可
#substring函数从1开始,
#全球通话时长是无论是接听者还是打电话的人都需要算进去
SELECT c1.name country
FROM Country c1
INNER JOIN Person p
ON c1.country_code=SUBSTRING(p.phone_number,1,3)
LEFT JOIN
(SELECT caller_id cid,durationFROM CallsUNION AllSELECT callee_id cid,durationFROM Calls
)c2
ON p.id=c2.cid
GROUP BY c1.name
HAVING avg(c2.duration)>(SELECT avg(duration) FROM Calls);

2.3 运行截图

在这里插入图片描述

3 部门工资最高的员工

3.1 题目内容

3.1.1 基本题目信息

在这里插入图片描述

3.1.2 示例输入输出

在这里插入图片描述

3.2 示例sql语句

SELECT e1.department,e1.employee,e1.salary
FROM
(SELECT e.name Employee,d.name Department,e.Salary,rank() over(partition by e.departmentId ORDER BY e.salary desc) rkFROM Employee eINNER JOIN Department dON e.departmentId=d.id
)e1
WHERE e1.rk=1;

3.3 运行截图

在这里插入图片描述

相关内容

热门资讯

阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...