网站建设与维护试题及答案,重庆中企动力地址,初期网站价值,简单的网站制作代码在sql语句中经常用到group by#xff0c;但是对其并不是太了解#xff0c;所以记录下来#xff1a; select A,cout(*) 数量 from table_name group by A; group by 的使用有一条原则#xff0c;那就是select 后面的所有列中没有使用聚合函数到必须出现在group by 后面。 那…在sql语句中经常用到group by但是对其并不是太了解所以记录下来 select A,cout(*) 数量 from table_name group by A; group by 的使用有一条原则那就是select 后面的所有列中没有使用聚合函数到必须出现在group by 后面。 那么group by 究竟有什么作用呢下面是在网上找到的一片帖子供自己参考 在介绍GROUP BY 和 HAVING 子句前我们必需先讲讲sql语言中一种特殊的函数聚合函数例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM bbc 这里的SUM作用在所有返回记录的population字段上结果就是该查询只返回一个结果即所有国家的总人口数。 通过使用GROUP BY 子句可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时 属于同一个region地区的一组数据将只能返回一行值也就是说表中所有除region地区外的字段只能通过 SUM, COUNT等聚合函数运算后返回一个值。 HAVING子句可以让我们筛选成组后的各组数据WHERE子句在聚合前先筛选记录也就是说作用在GROUP BY 子句和HAVING子句前而 HAVING子句在聚合后对组记录进行筛选。 让我们还是通过具体的实例来理解GROUP BY 和 HAVING 子句还采用第三节介绍的bbc表。 SQL实例 一、显示每个地区的总人口数和总面积 SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY region 先以region把返回记录分成多个组这就是GROUP BY的字面含义。分完组后然后用聚合函数对每组中的不同字段一或多条记录作运算。 二、 显示每个地区的总人口数和总面积仅显示那些面积超过1000000的地区。 SELECT region, SUM(population), SUM(area)FROM bbcGROUP BY regionHAVING SUM(area)1000000 在这里我们不能用where来筛选超过1000000的地区因为表中不存在这样一条记录。 相反HAVING子句可以让我们筛选成组后的各组数据 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 后面 。 转自dev.yesky.com/230/2669730.shtml 转载于:https://www.cnblogs.com/wzheng/p/3836755.html