SQL面试必备:经典笔试题解析
需积分: 4 126 浏览量
更新于2024-07-24
收藏 100KB DOC 举报
"SQL面试题目,涵盖多种SQL查询技巧,包括子查询、聚合函数、分组和条件过滤等"
在SQL面试中,掌握各种查询技巧是至关重要的。以下是一些经典的SQL面试题目及其解答,它们涉及到子查询、分组、聚合函数以及数据过滤等核心概念。
1. 题目:找出购买了至少两种商品的购物人记录。
解答:使用子查询和`GROUP BY`与`HAVING`结合,先按购物人分组并计算每个购物人的商品数量,然后筛选出数量大于等于2的购物人。SQL语句如下:
```sql
SELECT * FROM 购物信息
WHERE 购物人 IN (SELECT 购物人 FROM 购物信息
GROUP BY 购物人 HAVING COUNT(*) >= 2);
```
2. 题目:列出所有成绩全部合格(分数大于等于60)的学生信息。
解答:可以使用子查询排除分数不合格的学生,或者使用`GROUP BY`和`MIN()`函数筛选出所有课程都合格的学生。SQL语句如下:
```sql
-- 使用NOT IN
SELECT * FROM 成绩表
WHERE 姓名 NOT IN (SELECT DISTINCT 姓名 FROM 成绩表 WHERE 分数 < 60);
-- 或者使用IN和GROUP BY
SELECT * FROM 成绩表
WHERE 姓名 IN (SELECT 姓名 FROM 成绩表
GROUP BY 姓名 HAVING MIN(分数) >= 60);
```
3. 题目:找出平均进价在2元以下的商品名称。
解答:使用`GROUP BY`和`AVG()`函数计算每个商品的平均进价,然后筛选出平均价格低于2的商品。SQL语句如下:
```sql
SELECT 名称 FROM 商品表
GROUP BY 名称 HAVING AVG(进价) < 2;
```
4. 题目:找出高考总分在600分以上的学生准考证号。
解答:使用`GROUP BY`和`SUM()`函数计算每个学生的总分,然后筛选出总分大于600的学生。SQL语句如下:
```sql
SELECT 准考证号 FROM 高考信息表
GROUP BY 准考证号 HAVING SUM(成绩) > 600;
```
5. 题目:同样找出高考总分在600分以上的学生准考证号,但数据已按科目分列。
解答:直接将各科成绩相加,判断总和是否超过600。SQL语句如下:
```sql
SELECT 准考证号 FROM 高考信息表
WHERE (数学 + 语文 + 英语 + 物理 + 化学) > 600;
```
(一)题外题:查询俱乐部男性会员和女性会员的总数。
解答:使用`GROUP BY`和`COUNT()`函数按性别分组统计会员数量。SQL语句如下:
```sql
SELECT 性别, COUNT(id) FROM club GROUP BY 性别;
```
这些题目展示了SQL在数据查询和分析中的强大功能,对于理解和掌握SQL语言的基础和高级用法具有很高的实践价值。在面试中,能熟练解答这些问题通常表明应聘者具备扎实的SQL基础和实际操作经验。
2012-06-07 上传
2008-10-18 上传
2012-03-11 上传
2011-11-18 上传
2021-11-10 上传
2008-03-10 上传
大-笨-蛋
- 粉丝: 0
- 资源: 2
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章