专栏首页CDA数据分析师这些SQL技能你都会吗? 经典SQL面试题送给你(附答案)

这些SQL技能你都会吗? 经典SQL面试题送给你(附答案)

今天就给大家总结一些经典的SQL面试题。

首先熟悉一下数据库相关专业名词, 比如DB、 DBMS和SQL,这些概念常常让人傻傻分不清楚。

数据库(DataBase)是长期存储在计算机内、有组织的、统一管理的相关数据的集合。

数据库管理系统(DataBase Management System)是用于管理数据库的软件( Oracle/DB2/MySQL/sql server等), 它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

SQL是一种结构化查询语言(Structure Query Language),它是国际标准化组织采纳的标准数据库语言。

下面进入正题,给大家分享一套互联网公司数据库笔试题,希望对你有所帮助。

题目背景:

以下是4个表结构情况,提供了脱敏数据。其中学生表有8条记录,课程表有3条记录,教师表有3条记录,成绩表有18条记录。

公司使用Mysql数据库,明确表结构间的关系后,请完成以下题目。解题有不同方法,答案仅供参考。

1. 查询学生编号为01的学生成绩总分、平均分、最高分、最低分

select s_id,sum(score),avg(score),max(score),min(score) from sc where s_id=“01”;

2. 查询名字中含有“风”字的学生信息

select * from stu where s_name like “%风%”;

3. 查询每位同学的平均成绩,并按分数降序、学生编号升序排列

select s_id,avg(score) as 分数 from sc

group by s_id

order by 分数 desc,s_id;

4. 查询至少两门课程及格的学生学号

select s_id from sc

where score>=60

group by s_id

having count(*)>1;

5. 查询仅学过编号“01”和“02”课程的学生编号

select s_id from sc

group by s_id

having sum(c_id=“01”)=1 and sum(c_id=“02”)=1 and count(c_id)=2 ;

6. 每门课程的第二名和第三名

#方法1

select * from sc sc1 where

(select sum(score>sc1.score) from sc where c_id=sc1.c_id) in(1,2);

#方法2 
使用开窗函数
select * from

(select *,dense_rank() over(partition by c_id order by score desc) 排名 from sc) t

where 排名<=2;

7. 查询没学过“张三”老师课程同学的信息

select stu.* from stu

left join sc on stu.s_id=sc.s_id

left join co on sc.c_id=co.c_id

left join te on co.t_id=te.t_id

group by stu.s_id

having ifnull(group_concat(t_name),0) not like “%张三%”;

8. 查询“01”课程比“02”课程分数高的学生信息及课程分数

select stu.*,
sum((c_id=“01”)*score) 01分数,
sum((c_id=“02”)score) 02分数

from stu left join sc on stu.s_id=sc.s_id

group by stu.s_id

having (01分数>02分数) * (sum(c_id in (“01”,“02”))=2);

9. 查询学生的总成绩并进行排名

select s_id,sum(score) 总成绩,
dense_rank() over(order by sum(score) desc) 排名  #开窗函数

from sc

group by s_id;

以上题目你都会吗?

简单总结下:

作为一名数据分析师,玩转SQL查询语言至关重要!重点掌握知识点有:SQL查询语法,多表连接逻辑和查询,常用函数等。

本文分享自微信公众号 - CDA数据分析师(cdacdacda)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群:很多朋友们接触安全都是通过书籍;网上流传的PDF;亦或是通过论坛里的文章,但可能经过了这样一段时间的学习,了解了一些常见漏洞的原理之后,对于漏洞挖...

    HACK学习
  • 两个月拿到N个offer,看看我是如何做到的

    Java高级架构
  • 两个月拿到N个offer,看看我是如何做到的

    北京-三年经验-Java,在金三银四这两个月期间(在五月初还去面试了几家,主要是三四月份期面试剧居多),我跳槽面试,前前后后我面试十五家公司,最终,成功拿到了o...

    美的让人心动
  • Hadoop的正确打开方式

    关于 Hadoop 所谓的消亡,以及它跌落神坛的报道数不胜数。有很多人放马后炮说,Hadoop 从一开始就没有意义。还有人说“Hadoop 对于小型,临时的工作...

    挖掘大数据
  • 嫌弃Hadoop?可能是你的打开方式有问题

    原作者 Andrew Brust 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权 关于 Hadoop 所谓的消亡,以及它跌落神坛的报...

    CDA数据分析师
  • 75道常见AI面试题,看看你的知识盲点在哪?(附解析)

    【导语】正值求职、跳槽季,无论你是换工作还是找实习,没有真本事都是万万不行的,可是如何高效率复习呢?之前我们给大家推荐了一份 Python 面试宝典,收藏了近 ...

    AI科技大本营
  • 数据分析/hadoop/机器学习面试题集锦,可能是最全的了…

    无论你是想从事大数据相关职位的职场小白,还是准备往高处走的牛牛。小白有了这些在校招中过关斩将,牛牛们温故知新跨过业务壁垒。 B格高的HR,或者想要个助理的大数据...

    小莹莹
  • 数据分析入门极简书单

    如果你找一个熟悉的朋友给你推荐书单,他会倾向于越短越好,因为他想把他知道的最好的推荐给你,让你少花时间在不重要的事情上。

    小小詹同学
  • 数据库sql面试需要准备哪些?

    SQL 是用于数据分析和数据处理的最重要的编程语言之一,因此与数据科学相关的工作(例如数据分析师、数据科学家和数据工程师)在面试时总会问到关于 SQL 的问题。...

    用户2781897

扫码关注云+社区

领取腾讯云代金券