当前位置:首页 » 编程语言 » sql的分组groupby用法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql的分组groupby用法

发布时间: 2023-08-20 12:56:08

‘壹’ sql中分组短语是什么

SQL中分组短语是:group by。

GROUP BY 语句

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。

GROUP BY 语法

SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator valueGROUP BY column_name

Group By 的使用:

1、 Group By [Expressions]:

这个恐怕是Group By语句最常见的用法了,Group By + [分组字段](可以有多个)。在执行了这个操作以后,数据集将根据分组字段的值将一个数据集划分成各个不同的小组。比如有如下数据集,其中水果名称(FruitName)和出产国家(ProctPlace)为联合主键:


SELECTFruitName,ProctPlace,Price,IDASIDE,Discount
FROMT_TEST_FRUITINFO
WHERE(ProctPlace=N'china')ORDERBYIDE

这里只有在ORDER BY语句中才可以使用IDE,其他条件语句中如果需要引用列名则只能使用ID,而不能使用IDE。

以上就是Group By的相关使用说明。内容参考与网站CSDN中的“SQL语句Group By 语句小结“。

‘贰’ SQL中Group By 用法是什么

GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,你可以想想

你用了GROUP BY 按 ITEM.ITEMNUM 这个字段分组,那其他字段内容不同,变成一对多又改如何显示呢,比如下面所示

A B
1 abc
1 bcd
1 asdfg

select A,B from table group by A
你说这样查出来是什么结果,

A B
abc
1 bcd
asdfg

右边3条如何变成一条,所以需要用到聚合函数,比如

select A,count(B) 数量 from table group by A
这样的结果就是
A 数量
1 3

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

‘叁’ SQL中Group By 用法

group
by
是分组的意思

第一点:写在where条件之后,当然没有条件就直接跟在table后面(做分组并自动排序)

select
*
from
table
where ****** group
by
字段

第二点:当查询结果包含聚合函数时,没有使用聚合函数的必须要分组一下,这里的分组没有什么实际意义,但是必须,否则执行不成功

select
aa,bb,cc,sum(dd)
from
table
where
******
group
by
aa,bb,cc

‘肆’ sql语句中的group by要怎么用!!

1、最常用的就是这种语法,如下:Select CategoryID, AVG(UnitPrice), COUNT(UnitPrice) FROM dbo.Procts Where UnitPrice 30GROUP BY CategoryID ORDER BY CategoryID DESC这个语句查询出,所有产品分类的产品平均单价,单价计数。并且单价在 30 以上的记录。 2、再看看这种语法,如下:Select CategoryID, AVG(DISTINCT UnitPrice), COUNT(DISTINCT UnitPrice) FROM dbo.Procts Where UnitPrice 30GROUP BY CategoryID ORDER BY CategoryID DESC使用 DISTINCT 的时候,将会去除重复的价格平均单价。 3、如果希望在分类统计之后,再使用条件过滤,下面的语句可以做为参数:Select CategoryID, SUM(UnitPrice) AS SumPriceFROM dbo.ProctsGROUP BY CategoryIDHAVING SUM(UnitPrice) 300HAVING 与 Where 语句类似,Where 是在分类之前过滤,而 HAVING 是在分类之后过滤。它和 Where 一样使用 AND、OR、NOT、LIKE 组合使用。 4、如果希望再在分类统计中,添加汇总行,可以使用以下语句:Select CategoryID, SUM(UnitPrice), GROUPING(CategoryID) AS 'Grouping'FROM dbo.ProctsGROUP BY CategoryID WITH ROLLUPGrouping 这一列用于标识出哪一行是汇总行。它使用 ROLLUP 操作添加汇总行。 5、如果使用 WITH CUBE 将会产生一个多维分类数据集,如下:Select CategoryID, SupplierID, SUM(UnitPrice) AS SumPriceFROM dbo.ProctsGROUP BY CategoryID, SupplierID WITH CUBE 它会产生一个交叉表,产生所有可能的组合汇总。 6、使用 ROLLUP CUBE 会产生一个 NULL 空值,可以使用以下语法解决,如下:Select CASE WHEN (GROUPING(SupplierID) = 1) THEN '-1' ELSE SupplierID END AS SupplierID, SUM(UnitPrice) AS QtySumFROM dbo.ProctsGROUP BY SupplierID WITH CUBE

‘伍’ sql里group by怎么用

SQL GROUP BY 语句

----------

合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。

----------

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。


语法

SELECTcolumn_name,aggregate_function(column_name)
FROMtable_name
WHEREcolumn_nameoperatorvalue
GROUPBYcolumn_name