MIN(), MAX()是聚合函数. group by 后面是要跟着的 select 中所有不是聚合函数的字段。 ex1: select count(*) from emp; //只是查询总总数 emp这张表里一共有多少条记录 所以不用group by ex2: select count(*) , deptno from emp group by deptno; // 根据deptno 分组, 查到的数据就是 列出 不同部门 记录总数 select count(*) , deptno , comm from emp group by deptno , comm; // 根据deptno 和 comm 分组 以此类推 group by 后面是要跟着的 select 中所有不是聚合函数的字段 否则会报错。 注意:group by 不能有i.* ,即select i.*是不允许在group by 出现的,而是应该在select 后面全部手写出来 having 相当于where 与where的唯一区别是 当查询语句中有 聚合函数 的时候 就不能用where 了 只能用having group by 的作用:分组查询,例如student表有字段name,sex,age分别代表姓名,性别,年龄 表中有如下数据: 张三 男 18 李四 男 20 王五 女 18 小明 男 19 小花 女 20 (1)统计男女人数各多少 select sex,count(sex) as num from student group by sex 结果为: sex num 男 3 女 2 (2)统计各年龄人数 select age,count(age) as num from student group by age 结果为: age num 18 2 19 1 20 2
oracle中的 group by、sum聚合函数注意事项
最新推荐文章于 2023-01-31 19:15:43 发布