【DB笔试面试92】在MySQL中,有如下表结构,其中,NAME字段代表“姓名”,SCORE字段代表“分数”。
2021/4/14 19:31:33
本文主要是介绍【DB笔试面试92】在MySQL中,有如下表结构,其中,NAME字段代表“姓名”,SCORE字段代表“分数”。,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Q 题目如下所示:有如下表结构,其中,NAME字段代表“姓名”,SCORE字段代表“分数”。
CREATE TABLE `T1` ( `ID` DOUBLE, `NAME` VARCHAR(300), `SCORE` DOUBLE);INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('1','N1','59');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('2','N2','66');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('3','N3','78');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('4','N1','48');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('5','N3','85');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('6','N5','51');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('7','N4','98');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('8','N5','53');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('9','N2','67');INSERT INTO `T1` (`ID`, `NAME`, `SCORE`) VALUES('10','N4','88'); |
1、查询单分数最高的人和单分数最低的人。
2、查询两门分数加起来的第2至5名。
3、查询两门总分数在150分以下的人。
4、查询两门平均分数介于60和80的人。
5、查询总分大于150分,平均分小于90分的人数。
6、查询总分大于150分,平均分小于90分的人数有几个。
A 答案如下所示:
1、查询单分数最高的人和单分数最低的人。
mysql> SELECT * FROM T1 WHERE SCORE IN (SELECT MAX(SCORE) FROM T1 UNION ALL SELECT MIN(SCORE) FROM T1);+------+------+-------+| id | name | score |+------+------+-------+| 4 | n1 | 48 || 7 | n4 | 98 |+------+------+-------+2 rows in set (0.03 sec) |
2、查询两门分数加起来的第2至5名。
mysql> SELECT NAME,SUM(SCORE) FROM T1 GROUP BY NAME ORDER BY SUM(SCORE) DESC LIMIT 1,4;+------+------------+ | name | sum(score) | +------+------------+ | n3 | 163 | | n2 | 133 | | n1 | 107 | | n5 | 104 | +------+------------+ |
3、查询两门总分数在150分以下的人。
mysql> SELECT NAME, SUM(SCORE) FROM T1 GROUP BY NAME HAVING SUM(SCORE) < 150;+------+------------+| name | sum(score) |+------+------------+| n1 | 107 || n2 | 133 || n5 | 104 |+------+------------+3 rows in set (0.00 sec) |
4、查询两门平均分数介于60和80的人。
mysql> SELECT NAME,AVG(SCORE) FROM T1 GROUP BY NAME HAVING AVG(SCORE) BETWEEN 60 AND 80;+------+------------+| name | avg(score) |+------+------------+| n2 | 66.5 |+------+------------+1 row in set (0.02 sec) |
5、查询总分大于150分,平均分小于90分的人数。
mysql> SELECT NAME,SUM(SCORE),AVG(SCORE) FROM T1 GROUP BY NAME HAVING SUM(SCORE)>150 AND AVG(SCORE)<90;+------+------------+------------+ | name | sum(score) | avg(score) | +------+------------+------------+ | n3 | 163 | 81.5 | +------+------------+------------+ 1 row in set (0.00 sec) |
6、查询总分大于150分,平均分小于90分的人数有几个。
mysql> SELECT COUNT(NAME) FROM T1 GROUP BY NAME HAVING SUM(SCORE) > 150 AND AVG(SCORE) < 90;+----------------------+| count(distinct name) |+----------------------+| 1 |+----------------------+1 row in set (0.04 sec) |
|
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 文章内容来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。
本文分享自微信公众号 - DB宝(lhrdba)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
这篇关于【DB笔试面试92】在MySQL中,有如下表结构,其中,NAME字段代表“姓名”,SCORE字段代表“分数”。的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南