Aggregate 函数经常须要添加 GROUP BY 语句,Aggregate函数也就是常说的聚和函数,也叫集合函数函数
GROUP BY语句一般与集合函数(COUNT,MAX,MIN,SUM,AVG)一块儿使用,以按一个或多个列对结果集进行分组。spa
语法:code
select 聚合函数(字段),字段 from 表名 group by 字段
建个表,弄点数,为了方便对照blog
分组查询银行统计名字相同的有几个排序
select COUNT(字段) as 个数,字段a from 表名 group by 字段a
其中count 中的字段能够随意填,通常为idrem
有可能的报错:get
只又分组查询的那个字段能够不用聚合函数it
能够稍加修改:class
分组查询银行,并统计工资总数test
与top 一块进行查询
语法:
select top 查询前几行 COUNT(字段) as 个数,字段a from 表名 group by 字段a
与排序 order by 一块
语法: 字段要一致
select top 查询前几行 COUNT(字段) as 个数,字段a from 表名 group by 字段a order by 字段a desc
若是不一致
与where 字句一块使用
语法: count() 里面没有什么限制,放啥都行
select top 查询前几行 COUNT(0) as 个数,字段a from 表名 where 条件 group by 字段a order by 字段a desc
多表查询
语法:
SELECT 表1.name,COUNT(表2.aid) AS nums FROM 表2 INNER JOIN 表1 ON 表2.site_id=表1.id GROUP BY 表1.name;
select * from obgetest -- 分组查询 银行,,其中名字是 obge 的有两个 select COUNT(Gids) as 个数,Bank from obgetest group by Bank --- 能够看出,多个字段时,只有须要分组查询的那个字段能够不用使用聚合函数 select COUNT(Gids)as 个数,Bank,Gongzi from obgetest group by Bank -- 能够修改成分组查询银行,并统计工资总总数 select COUNT(Gids)as 个数,Bank,sum(Gongzi)as 总数 from obgetest group by Bank -- 与top 一块查询,count 里面放入bank 字段和 gids 字段的做用一致 select top 5 COUNT(Bank) as 个数,Bank from obgetest group by Bank -- 与order by 一块,分组查询工资相同个数, 并按照倒序排列,查前5 行 ----- 必定要注意 排序的字段和分组字段要一致 select top 5 COUNT(rem) as 个数,Gongzi from obgetest group by Gongzi order by Gongzi desc --- 有错误 select top 5 COUNT(rem) as 个数,Gongzi from obgetest group by Gongzi order by Gids desc ---- 与where字句 注意语法位置 select COUNT(0) as 个数,Gongzi from obgetest where Gongzi > 1000 group by Gongzi order by Gongzi desc