数据库
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `table2`
-- ----------------------------
DROP TABLE IF EXISTS `table2`;
CREATE TABLE `table2` (
`a` varchar(10) DEFAULT NULL,
`c` varchar(10) DEFAULT NULL,
`d` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of table2
-- ----------------------------
INSERT INTO `table2` VALUES ('赵', '90', '5');
INSERT INTO `table2` VALUES ('钱', '100', '1');
INSERT INTO `table2` VALUES ('孙', '80', '2');
INSERT INTO `table2` VALUES ('李', null, '3');
操作:找出d的值大于平均值的记录
操作1
SELECT * FROM table2
WHERE d > (SELECT AVG(d) FROM table2)
结果正确
操作2
SELECT *
FROM table2
GROUP BY a
HAVING AVG(d) <= d
结果错误,d不是一个常量值
如果聚合函数比较运算符的右边