SQL中Group By 用法?

用法如下
SELECT 列名1, aggregate_function(列名2)
FROM table_name
GROUP BY 列名 

Group By 后面的列名,一定要与上面select后面的列名一致吗???一定要是列名1吗?
SELECT 列名1,aggregate_function(列名2)
FROM table_name
GROUP BY 列名
Having aggregate_function(列名)

Having后面的aggregate_function(列名)也必须和上面select后面的aggregate_function(列名)一致吗?

holdtom
浏览 747回答 3
3回答

红颜莎娜

GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想你用了GROUP BY 按  ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示A  B1  abc1  bcd1  asdfgselect A,B from table group by A你说这样查出来是什么结果,A  Babc1  bcdasdfg右边3条如何变成一条,所以需要用到聚合函数,比如select A,count(B) 数量 from table group by A这样的结果就是A  数量1   3group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。GroupBy语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。

鸿蒙传说

SELECT 列名1,dbo.aggregate_function(列名2)FROM table_nameGROUP BY 列名1,列名2自定义函数aggregate_function,加上dbo.
打开App,查看更多内容
随时随地看视频慕课网APP