当前位置:Gxlcms > 数据库问题 > SQL --------------- GROUP BY 函数

SQL --------------- GROUP BY 函数

时间:2021-07-01 10:21:17 帮助过:12人阅读

聚合函数(字段),字段 from 表名 group by 字段

建个表,弄点数,为了方便对照

技术图片

 

 

 分组查询银行统计名字相同的有几个

select COUNT(字段) as 个数,字段a from 表名 group by 字段a

其中count 中的字段可以随意填,一般为id

技术图片

 

 

有可能的报错:

只又分组查询的那个字段可以不用聚合函数

技术图片

 

 

 可以稍加修改:

分组查询银行,并统计工资总数

技术图片

 

 

 与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

 

SQL --------------- GROUP BY 函数

标签:语法   聚合函数   一个   agg   错误   count   class   col   esc   

人气教程排行