自学SQL网题解(6-12课题解)
自学SQL网题解
- 自学SQL网(6-12课题解)
- SQL Lesson 6: 用JOINs进行多表联合查询
- SQL Lesson 7: 外连接(OUTER JOINs)
- SQL Lesson 8: 关于特殊关键字 NULLs
- SQL Lesson 9: 在查询中使用表达式
- SQL Lesson 10: 在查询中进行统计I (Pt. 1)
- SQL Lesson 11: 在查询中进行统计II (Pt. 2)
- SQL Lesson 12: 查询执行顺序
自学SQL网(6-12课题解)
本文章尽量用简洁的代码去完成题目要求,话不多说,上代码。
SQL Lesson 6: 用JOINs进行多表联合查询
1.找到所有电影的国内Domestic_sales和国际销售额
SELECT * FROM movies
JOIN boxoffice
ON movies.id=boxoffice.movie_id;
2.找到所有国际销售额比国内销售大的电影
SELECT * FROM movies
join boxoffice
on movies.id=boxoffice.movie_id
where Domestic_sales <International_sales;
3.找出所有电影按市场占有率rating倒序排列
SELECT * FROM movies
join boxoffice
on movies.id=boxoffice.movie_id;
4.每部电影按国际销售额比较,排名最靠前的导演是谁,线上销量多少
SELECT Director,International_sales FROM movies
join boxoffice
on movies.id=boxoffice.movie_id
order by International_sales desc
limit 1;
SQL Lesson 7: 外连接(OUTER JOINs)
1.找到所有有雇员的办公室(buildings)名字
SELECT distinct Building_name FROM employees
left join Buildings
on employees.Building=Buildings.Building_name
where Building;
2.找到所有办公室和他们的最大容量
SELECT distinct Building_name,Capacity FROM Buildings;
3.找到所有办公室里的所有角色(包含没有雇员的),并做唯一输出(DISTINCT)
SELECT distinct role,Building_name FROM Buildings
left join Employees
on Buildings.Building_name = Employees. Building;
4.找到所有有雇员的办公室(buildings)和对应的容量
SELECT distinct Building_name,Capacity FROM Buildings
left join Employees
on Buildings.Building_name = Employees. Building
where Building = 'null'; //=where Building
SQL Lesson 8: 关于特殊关键字 NULLs
1.找到雇员里还没有分配办公室的(列出名字和角色就可以)
SELECT Role,Name FROM employees
where Building is NULL;
2.找到还没有雇员的办公室
SELECT DISTINCT Building_name FROM Buildings
left join employees
on employees.Building =Buildings.Building_name
where name is NULL;
SQL Lesson 9: 在查询中使用表达式
1.列出所有的电影ID,名字和销售总额(以百万美元为单位计算)
SELECT Id,Title,(Domestic_sales+International_sales)/1000000 as sum FROM movies
left join Boxoffice
on Boxoffice.Movie_id = movies.Id;
2.列出所有的电影ID,名字和市场指数(Rating的10倍为市场指数)
SELECT Id,Title,rating*10 as sum FROM movies
left join Boxoffice
on Boxoffice.Movie_id = movies.Id;
3.列出所有偶数年份的电影,需要电影ID,名字和年份
SELECT Id,Title,year FROM movies
left join Boxoffice
on Boxoffice.Movie_id = movies.Id
where year %2=0;
4.John Lasseter导演的每部电影每分钟值多少钱,告诉我最高的3个电影名和价值就可以
SELECT Title,(Domestic_sales+International_sales)/Length_minutes as value FROM movies
left join Boxoffice
on Boxoffice.Movie_id = movies.Id
where director = 'John Lasseter'
order by value desc
limit 3;
5.电影名最长的3部电影和他们的总销量是多少
SELECT title,length(title),(Domestic_sales+International_sales) as value FROM movies
left join Boxoffice
on Boxoffice.Movie_id = movies.Id
order by length(title) desc
limit 3 offset 0;
SQL Lesson 10: 在查询中进行统计I (Pt. 1)
1.找出就职年份最高的雇员(列出雇员名字+年份)
SELECT name,Years_employed FROM employees
order by Years_employed desc
limit 1
2.按角色(Role)统计一下每个角色的平均就职年份
SELECT role,avg(Years_employed) FROM employees
group by role;
3.按办公室名字总计一下就职年份总和
SELECT building,sum(Years_employed) FROM employees
group by building;
4.每栋办公室按人数排名,不要统计无办公室的雇员
select Building,count(Building) from Employees
where Building is not null
group by Building;
5.就职1,3,5,7年的人分别占总人数的百分比率是多少(给出年份和比率"50%" 记为 50)
SELECT Years_employed,round(count(*)*1.0*100/(select count(*) from employees)) as rate
FROM employees
where Years_employed in(1,3,5,7)
group by Years_employed
SQL Lesson 11: 在查询中进行统计II (Pt. 2)
1.统计一下Artist角色的雇员数量
SELECT count(*) FROM employees
where role = 'Artist';
2.按角色统计一下每个角色的雇员数量
select role,count(*) from employees
group by role;
3.算出Engineer角色的就职年份总计
SELECT SUM(Years_employed) FROM employees
where role= 'Engineer';
4.按角色分组算出每个角色按有办公室和没办公室的统计人数(列出角色,数量,有无办公室,注意一个角色如果部分有办公室,部分没有需分开统计)
SELECT count(*) as count,Role,building is not null
FROM employees
group by Role,building is not null
5.按角色和就职年份统计人数,年份按0-3,3-6,6-9这种阶梯分组,最后按角色+阶梯分组排序
SELECT role,count(*),Years_employed/3
FROM employees
group by role,Years_employed/3 ;
SQL Lesson 12: 查询执行顺序
1.统计出每一个导演的电影数量(列出导演名字和数量)
SELECT Director,count(*) FROM movies
join boxoffice
on movies.id = boxoffice.Movie_id
group by Director;
2.统计一下每个导演的销售总额(列出导演名字和销售总额)
SELECT Director,SUM(Domestic_sales+International_sales) FROM movies
join boxoffice
on movies.id = boxoffice.Movie_id
group by Director;
3.按导演分组计算销售总额,求出平均销售额冠军(统计结果过滤掉只有单部电影的导演,列出导演名,总销量,电影数量,平均销量)
SELECT director,count(*),SUM(Domestic_sales+International_sales),SUM(Domestic_sales+International_sales)/count(*) as avg
FROM movies
left join boxoffice
on movies.id = boxoffice .movie_id
group by director
having count(*) > 1
order by avg desc
limit 1;
4.找出每部电影和单部电影销售冠军之间的销售差,列出电影名,销售额差额
SELECT title, (select MAX(Domestic_sales+International_sales)
from Boxoffice) - SUM(Domestic_sales+International_sales) FROM movies
inner join Boxoffice
on movies.ID = Boxoffice.movie_id
group by title;
生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
自学SQL终结
自学SQL网题解(6-12课题解)相关推荐
- 自学SQL网题解(0-5课题解)
自学SQL网题解 自学SQL网(0-5课题解) SQL Lesson 0: 让我给SQL做个自我介绍 SQL Lesson 1: SELECT 查询 101 SQL Lesson 2: 条件查询 (c ...
- 自学SQL网习题题解:0-12(带内容解析!)
自学SQL网习题题解:0-12(带内容解析!) 原创:丶无殇 2022-07-17 这是一个自学SQL的中文网站,基础内容质量高,语言简洁明了,能够快速学习并提升技能. 网址:http://xues ...
- 自学SQL网 难题笔记
自学SQL网 难题笔记 自学SQL网 第十一课 Part2 [难题]按角色分组算出每个角色按有办公室和没办公室的统计人数(列出角色,数量,有无办公室,注意一个角色如果部分有办公室,部分没有需分开统计) ...
- 自学SQL网题库答案
###自学SQL网答案 leeson 1 [简单查询]找到所有电影的名称title SELECT title from movies [简单查询]找到所有电影的导演 select director f ...
- 可能是史上最适合入门SQL语句的教程——自学SQL网学习笔记
自学SQL网Note 学习网址:http://xuesql.cn/ 表格.题目和知识点采集于自学SQL网,这个网站提供直接练习SQL的页面,免去了安装MySQL和导入表格的繁琐步骤,非常推荐初学者学习 ...
- 自学SQL网之学习笔记(题目+答案)
最近在重新学习数据库SQL,这里分享一下在使用<自学SQL网>上自学期间所涉及的练习题. 重要的事情要说三遍!仅供参考!仅供参考!仅供参考!!! 当然也悄悄种草一下这个网站练练手还是蛮不错 ...
- sql语言实践之自学SQL网(SQL Lesson12)
sql语言实践之自学SQL网(SQL Lesson12) 这是一个目录 sql语言实践之自学SQL网(SQL Lesson12) SQL Lesson 12: 查询执行顺序 练习 do it - 请完 ...
- sql截取某个字段字符串后几位_自学SQL网教程之09-SQL Lesson 8: 关于特殊关键字 NULLs...
SQL Lesson 8: 关于特殊关键字 NULLs 之前我们已经接触过NULL. 在数据库中,NULL表达的是 "无"的概念,或者说没有东西.因为 NULL的存在,我们需要在编 ...
- 推荐一个学习SQL的网站-自学SQL网
自学SQL网 自学SQL网 一个适合小白学SQL的网站,由浅入深的介绍所有有关 SQL 的知识, 每一个章节是一组相关的SQL知识点: 并且会配备一组动手练习任务. 这个网站特别适合学完某种知识就想马 ...
最新文章
- linux 创建/删除 swap交换分区
- 改变mysql的菜单栏的颜色_导航条——动态改变导航菜单的背景颜色
- 互联网晚报 | 3月21日 星期一 |​ 科大讯飞5亿成立科技新公司;新能源车企称采购宁德时代电池成本上涨两万元...
- php postgresql win,Windows PHP上的PostgreSQL问题
- 随想录(smp的一些注意事项)
- Mysql的去重distinct
- paip.中文 分词 -- 同义词大全整理
- python部落课程资源_python部落刷题宝学到的内置函数
- 详解安全测试工具:SAST、DAST、IAST、SCA的异同
- Golang代码注释规范及goland代码注释模板配置
- 数据库同步——中间数据库的实现方式
- 启动Elasticsearch时:[failed to obtain node locks]
- HTML+CSS鼠标悬停效果
- Mosaicking to Distill Knowledge Distillation from Out-of-Domain Data
- 2.Nacos 服务注册的原理
- c语言_调和级数不等式
- Cocos2d-x学习笔记(八)—— 粒子系统,场景切换,网格特效
- 蓝桥杯单片机第十三届第二场
- MySQL《多表连接操作2》
- location.href的几种用法