【六祎 -mysql】DQL分组查询

######## DQL分组查询 
SELECT 列名 FROM 表名 GROUP BY 分组的列名 HAVING 分组后的条件
-- 注意:直接按照字段分组,默认提取每组的第一个人作为结果数据,这样是没有意义的!
SELECT * FROM tb_student02 GROUP BY sex ;

-- 分组一般要带分组条件或者进行聚合统计,否则毫无意义
-- 需求:查询出男人中和女人中的最低数学成绩 ,分组一般要带分组字段查询!
SELECT MIN(math) , sex  FROM tb_student02 GROUP BY sex ;

-- 需求:查询出男人和女人的英文平均分
SELECT AVG(IFNULL(english , 0 )) , sex  FROM tb_student02 GROUP BY sex ;

-- 需求:查询年龄大于25岁的人,按性别分组,统计每组的人数
SELECT COUNT(*) , sex FROM tb_student02 WHERE age > 25  GROUP BY sex;

### 对分组后的结果过滤
-- 先分组,再过滤
查询年龄大于25岁的人,按性别分组,统计每组的人数,并只显示性别人数大于2的数据。以下代码是否正确?
SELECT COUNT(*) , sex FROM tb_student02 WHERE age > 25  GROUP BY sex WHERE COUNT(*) > 2; -- 错误的

-- 分组以后的条件必须放在h

你可能感兴趣的:(Mysql技术相关,mysql,数据库)