[test]select之having练习

来源:互联网 发布:淘宝开店新规则 编辑:程序博客网 时间:2024/06/06 11:46

【题目】
+-----+----------+----------+-------+
| stu | name     | ke       | fen   |
+-----+----------+----------+-------+
| 100 | aa       | aa       | 90.00 |
| 101 | ZhangSan | ShuXue   | 90.00 |
| 102 | ZhangSan | YuWen    | 50.00 |
| 103 | ZhangSan | DiLi     | 40.00 |
| 104 | LiSi     | YuWen    | 55.00 |
| 105 | LiSi     | ZhengZhi | 45.00 |
| 106 | WangWu   | ZhengZhi | 30.00 |
+-----+----------+----------+-------+

查询两门及两门以上不及格同学的平均分,只用一次select完成查询,时间20分钟。

 

【题解】

#建表create table score (stu int unsigned primary key auto_increment,name varchar(20) not null default '',ke varchar(10) not null default '',fen decimal(5,2) not null default 0)AUTO_INCREMENT = 100,charset utf8;#插入insert into score(name,ke,fen)values('aa','aa',90),('ZhangSan','ShuXue',90),('ZhangSan','YuWen',50),('ZhangSan','DiLi',40),('LiSi','YuWen',55),('LiSi','ZhengZhi',45),('WangWu','ZhengZhi',30.0);#查询select  name,avg(fen)from scoregroup by namehaving sum(fen<60)>=2; 

 

 

【测试】

#继续添加insert into score(name,ke,fen)values('aa','za',90),('aa','ac',180),('aa','a',60),('WangWu','ZhengZhi1',90.0);('WangWu','ZhengZhi2',60.0);  #在查询select  name,avg(fen)from scoregroup by namehaving sum(fen<60)>=2;

 

【显示结果】

+----------+-----------+
| name     | avg(fen)  |
+----------+-----------+
| LiSi     | 50.000000 |
| ZhangSan | 60.000000 |
+----------+-----------+
2 rows in set (0.00 sec)

 

【心得】

查询的格式是:

select <表>

from tableName

where <条件>

group by<群>

having <条件>

这个顺序不能乱的说,好纠结。

而且having里的条件是sum不是count,好神奇!

 

 

 

原创粉丝点击