本文共 1640 字,大约阅读时间需要 5 分钟。
我有一个同学最近在学习MySQL数据库,为了测试自己的学习成果,他出了六道MySQL试题让我做。这些题目非常经典,记录了他测试的学习成果,我觉得非常有价值,所以决定详细记录下来。
首先,测试数据表的结构如下:
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'); 接下来是六个问题及答案:
mysql> select name, max(score) from t1;
答案:n3,163分。
mysql> select name, sum(score) from t1 group by name order by sum(score) desc limit 4;
答案:
| name | sum(score) |
|---|---|
| n3 | 163 |
| n2 | 133 |
| n1 | 107 |
| n5 | 104 |
mysql> select name, sum(score) from t1 group by name having sum(score) < 150;
答案:
| name | sum(score) |
|---|---|
| n5 | 104 |
| n1 | 107 |
| n2 | 133 |
mysql> select name, avg(score) from t1 group by name having avg(score) between 60 and 80;
答案:
| name | avg(score) |
|---|---|
| n3 | 81.5 |
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 |
mysql> select count(distinct name) from t1 group by name having sum(score) > 150 and avg(score) < 90;
答案:1人。
转载地址:http://rqdfk.baihongyu.com/