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

你可能感兴趣的:(MySQL,mysql,数据库,sql,mariadb,mongodb)