2002歌曲mysql查询成绩两科及格的_数据库:查询出两门及两门以上不
及格者的平均成绩
只爱你一个人查询出两门及两门以上不及格者的平均成绩(注意是所有科⽬的平均成绩)
捕获.PNG
sql-- ----------------------------
-- Table structure for grade_table
-- ----------------------------
DROP TABLE IF EXISTS `grade_table`;
CREATE TABLE `grade_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `subject`农村致富好项目
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of grade_table
-- ----------------------------
INSERT INTO `grade_table` VALUES ('1', '张三', '数学', '80');
INSERT INTO `grade_table` VALUES ('2', '张三', '语⽂', '60');
INSERT INTO `grade_table` VALUES ('3', '张三', '英语', '50');
INSERT INTO `grade_table` VALUES ('4', '李四', '数学', '56');
INSERT INTO `grade_table` VALUES ('5', '李四', '语⽂', '55');
INSERT INTO `grade_table` VALUES ('6', '李四', '英语', '88');
INSERT INTO `grade_table` VALUES ('7', '王五', '数学', '60');
特殊的生日作文
INSERT INTO `grade_table` VALUES ('8', '王五', '语⽂', '56');
INSERT INTO `grade_table` VALUES ('9', '王五', '英⽂', '32');
Solution:
正确的解决⽅法:SELECT
name,cat音乐剧
FORMAT(avg(score), 2) AS avgscore
FROM
grade_table
GROUP BY
NAME
HAVING SUM(score = 2;
一天一篇日记
捕获.PNG
下⾯是我做的过程出错的⼀种解法,列出来供⼤家参考:SELECT
name,
打工人生FORMAT(avg(score), 2) AS avgscore
FROM
grade_table
GROUP BY
NAME
HAVING count(score = 2;
捕获.PNG
航天员简笔画
问题原因:
这⾥不应该使⽤count()函数,count()达不到想要的结果,并不是条件的问题,⽽是⽆论count()⾥的表达式是什么都会数⼀⾏,但是sum(score<60) 可以达到⽬的。
count(a),⽆论a是什么,都是数⼀⾏;count()时,每遇到⼀⾏,就输⼀个a,跟条件⽆关
作者:lconci