一、有表如下

+------+---------+--------+
| name | subject | score |
+------+---------+--------+
| 张三 | 数学 | 80 |
| 张三 | 语文 | 53 |
| 张三 | 英语 | 59 |
| 李四 | 数学 | 55 |
| 李四 | 语文 | 56 |
| 李四 | 英语 | 50 |
| 王五 | 数学 | 100 |
| 王五 | 语文 | 90 |
+------+---------+--------+

只用一个select语句查询:不及格科目大于或等于2科的学生,的平均分(所有科目的平均分)。

要点:

1、要统计每个学生不及格科目的个数。

2、计算平均分。

误解一:使用count统计。count永远是统计的所有行!

正解:用sum统计。先计算所有人的平均分,再筛选。

mysql> select name,avg(score),sum(score < 60) as cnt from student group by name having cnt >= 2;
+------+------------+-----+
| name | avg(score) | cnt |
+------+------------+-----+
| 张三 | 64.0000 | 2 |
| 李四 | 53.6667 | 3 |
+------+------------+-----+
2 rows in set</span>

sum(score < 60) 就是统计 挂科数目。

having 是用于筛选的,这里不用用where。where只能用于存在的列。

二、还是上面的表,查询出每个学生最大分数的科目及分数

mysql> select * from student where score in(select max(score) from student group by name);
+------+---------+-------+
| name | subject | score |
+------+---------+-------+
| 张三 | 数学 | 80 |
| 李四 | 语文 | 56 |
| 王五 | 数学 | 100 |
+------+---------+-------+
3 rows in set

三、

一个班级表(class),其中的属性有:id, class_name

一个学生表(student),其中的属性有:id, student_name, class_id

一个成绩表(score),其中的属性有:id, student_id, course_name, score

通过一条sql语句找出各个班级的各个科目的平均成绩,按从大到小排序。

select a.class_name, c.course_name, avg(c.score) as avg
from class a, student b, score c
where a.id=b.class_id and b.id=c.student_id
group by a.class_name, c.course_name
order by avg desc;

需要注意的地方:

(1)avg() 求完平均值后要用as对求得的平均值列命名。

(2)在where后跟多个条件语句的时候,记得使用and 或者 or来连接。

(3)group by 后跟多个列进行分组时,用逗号分开,其表达的意思是先按第一个属性列中的元素进行分组,在分完组的基础上再根据第二个属性列中的元素进行分组。

(4)desc表示从大到小(降序),asc表示从小到大(升序)。

(5)order by 后要写清楚根据那个属性进行升序或者降序进行排序的。

附加一条不在上面出现的值得注意的点:

(1)order by 后跟多个属性时,用逗号隔开,其表达的意思是先根据第一个属性进行升(降)序进行排序,当第一个属性中有相同的值存在的时候,再对这些相同值对应的数据根据第二个属性进行升(降)序进行排序。

MySQL笔试题搜罗的更多相关文章

  1. mysql笔试题大餐---2、exists加一些查询

    mysql笔试题大餐---2.exists加一些查询 一.总结 一句话总结: 实践:我之前的mysql真的学的太浅了,这种情况下,依据实践(做题)才是唯一能把它学好的方式 1.MySQL中EXISTS ...

  2. mysql笔试题大餐---1、组合查询方式及having

    mysql笔试题大餐---1.组合查询方式及having 一.总结 一句话总结: 实践:我之前的mysql真的学的太浅了,这种情况下,依据实践(做题)才是唯一能把它学好的方式 学的暂时够了,以实践而学 ...

  3. Mysql笔试题(二)

    (1)表名:购物信息购物人      商品名称     数量A            甲          2B            乙          4C            丙       ...

  4. Mysql笔试题

    1.查询Student表中的所有记录的Sname.Ssex和Class列. SELECT Sname,Ssex,Class FROM Students; 2.查询教师所有的单位即不重复的Depart列 ...

  5. PHP笔试题(转载)

    整理了一份PHP高级工程师的笔试题,问题很全面.嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了.下面直接上题. 1. 基本知识点 HTTP协议中几个状态码的含义:503, ...

  6. 收藏所用C#技术类面试、笔试题汇总

    技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...

  7. 嵌入式Linux C笔试题积累(转)

    http://blog.csdn.net/h_armony/article/details/6764811 1.   嵌入式系统中断服务子程序(ISR) 中断是嵌入式系统中重要的组成部分,这导致了很 ...

  8. 整理收藏一份PHP高级工程师的笔试题

    整理了一份PHP高级工程师的笔试题,问题很全面.嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了.下面直接上题. 1. 基本知识点 HTTP协议中几个状态码的含义:503, ...

  9. PHP工程师笔试题

    PHP工程师笔试题 提示:请将答案写在另外一张空白纸上,并在30分钟内完成. PHP 请写出include.require.include_once.require_noce的区别. include是 ...

随机推荐

  1. 关于read和fread

    1.fread与read的区别---open和fopen的区别--fread函数和fwrite函数:http://blog.csdn.net/dreamtdp/article/details/7560 ...

  2. 洛谷 P3258 BZOJ 3631 [JLOI2014]松鼠的新家

    题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的.天哪,他居然真的住在”树“上. 松鼠想邀请小熊维尼前 ...

  3. noip模拟赛 SAC E#1 - 一道中档题 Factorial

    题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SO ...

  4. CF410div2 D. Mike and distribution

    /* CF410div2 D. Mike and distribution http://codeforces.com/contest/798/problem/D 构造 题意:给出两个数列a,b,求选 ...

  5. BZOJ1192 鬼谷子的钱袋

    没想到这是一道省选题... /* BZOJ1192 */ #include <cstdio> int main() { ; scanf("%d",&m); ;m ...

  6. js获得子页面元素

    在主页面中.添加iframe子页面,假设须要获得子页面的元素则能够使用javascript的contentWindow来获得,注意iframe和frameset必须加入id.详细样例例如以下: mai ...

  7. Fiddler手机抓包工具设置过滤域名

    需求:我想用fiddler抓包只抓test.sis.1course.cn; pre.schoolis.cn; sistest02.schoolis.cn;这几个域名下的请求 设置步骤:https:// ...

  8. iOS 运行时添加属性和方法

    第一种:runtime.h里的方法 BOOL class_addProperty(Class cls, const char *name, const objc_property_attribute_ ...

  9. 【特征匹配】SIFT原理之KD树+BBF算法解析

    转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/47606159 继上一篇中已经介绍了SIFT原理与C源代码剖析,最后得到了一系列 ...

  10. Mac关闭Iphone更新系统iTunes强制自动备份文件

    在任何时候iOS设备一连结苹果Mac电脑,电脑中的iTunes软件将自动对iOS设备进行同步和备份.虽然备份非常有用,当我们的iPhone/iPad出现问题的时候,可以直接恢复iPhone/iPad的 ...