points表
users表
附上建表sql(如果你想尝试)
CREATE TABLE `points` (
`id` int(11) NOT NULL,
`flag` int(11) DEFAULT NULL,
`point` int(11) DEFAULT NULL,
`number` bigint(11) DEFAULT NULL,
`time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`number` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
1、先从简单的开始,查询平均point
SELECT
p.number,
AVG(p.point)
FROM
points p,
users u
WHERE
p.number = u.number
GROUP BY
p.number;
2、加入Having
SELECT
p.number,
AVG(p.point)
FROM
points p,
users u
WHERE
p.number = u.number
GROUP BY
p.number
HAVING
AVG(p.point >=6.5);
3、改为输出number和count(*)
SELECT
p.number,
COUNT(*)
FROM
points p,
users u
WHERE
p.number = u.number
GROUP BY
p.number
HAVING
AVG(p.point >=6.5);
PS:确实就是1条数据,自己尝试了下该数据也是正确的。