MySQL select 查询之分组和过滤

SELECT 语法

SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}
FROM table_name [as table_alias]
[left | right | inner join table_name2] -- 联合查询
[WHERE ...] -- 指定结果需满足的条件
[GROUP BY ...] -- 指定结果按照哪几个字段来分组
[HAVING] -- 过滤分组的记录必须满足的次要条件
[ORDER BY ...] -- 指定查询记录按一个或多个条件排序
[LIMIT {[offset,]row_count | row_countOFFSET offset}];
-- 指定查询的记录从哪条至哪条

注意 : [ ] 括号代表可选的 , { }括号代表必选

分组和过滤

-- 查询不同课程的平均分, 最高分, 最低分, 平均分大于 1002的
-- 分组 group by 字段
SELECT `subject`, AVG(sub.`gradeid`) AS 平均分, MAX(sub.`gradeid`) AS 最高分, MIN(sub.`gradeid`) AS 最低分
FROM `subject` sub
INNER JOIN `result` r
ON sub.`gradeid` = r.`gradeid`
GROUP BY sub.subject
HAVING 平均分 >= 1002
上一篇:jsp页面关建字查询出记录后,点下一页关键字会清空,怎么保持关键字不变而进行下一页操作?


下一篇:HttpClient封装工具类