SQL基础知识V2——GROUP BY

简介: SQL数据库开发

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


GROUP BY 语法

SELECT column_name,

aggregate_function(column_name)

FROM table_name

WHERE column_name operator value

GROUP BY column_name;


示例数据库

我们使用Customers表和Orders表来演示:

50.jpg

                                                    Customers表

51.jpg

Orders表


GROUP BY实例

查询居住在各个城市的客户分别有多少个。我们可以这样写SQL:

SELECT 城市,COUNT(*) AS 客户数量
FROM Customers
GROUP BY 城市

结果:

52.jpg


从上面我们可以看到,GROUP BY 将城市名称相同的客户聚集在一起,然后通过COUNT函数计算出了他们的数量。


GROUP BY 多表连接

查询每个城市有多少个订单产生。我们可以这样写SQL:

SELECT c.城市,COUNT(o.订单ID) AS 订单数量
FROM Customers c
LEFT JOIN Orders o ON c.客户ID=o.客户ID
GROUP BY c.城市

结果:


53.jpg

因为没有北京和杭州的用户购买产品,所以订单数量为0


批注

GROUP BY主要作用是用来进行分组聚合,也有时候会用来进行排重,与DISTINCT关键字作用类似。常用HAVING关键字一起使用,用来对分完组后的数据进一步的筛选,属于常用关键字之一。此外还经常与集合进行一起使用,这里不作扩展。



相关文章
|
7月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】如何将mysql含有group by的SQL转换成崖山支持的SQL
本文探讨了在YashanDB(崖山数据库)中执行某些SQL语句时出现的报错问题,对比了MySQL的成功执行结果。问题源于SQL-92标准对非聚合列的严格限制,要求这些列必须出现在GROUP BY子句中,而SQL:1999及更高版本允许非聚合列直接出现在选择列中。YashanDB和Oracle遵循SQL-92标准,因此会报错。文章提供了两种解决方法:使用聚合函数处理非聚合列,或将GROUP BY与ORDER BY拆分为两层查询。最后总结指出,SQL-92标准更为严谨合理,建议开发者遵循此规范以避免潜在问题。
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB 知识库】如何将 mysql 含有 group by 的 SQL 转换成崖山支持的 SQL
在崖山数据库中执行某些 SQL 语句时出现报错(YAS-04316 not a single-group group function),而这些语句在 MySQL 中能成功执行。原因是崖山遵循 SQL-92 标准,不允许选择列表中包含未在 GROUP BY 子句中指定的非聚合列,而 MySQL 默认允许这种操作。解决办法包括:使用聚合函数处理非聚合列或拆分查询为两层,先进行 GROUP BY 再排序。总结来说,SQL-92 更严格,确保数据一致性,MySQL 在 5.7 及以上版本也默认遵循此标准。
|
SQL 存储 缓存
高基数 GroupBy 在 SLS SQL 中的查询加速
本文详细介绍了SLS中的高基数GroupBy查询加速技术。
284 102
|
SQL 安全 流计算
Flink SQL 在快手实践问题之Group Window Aggregate 中的数据倾斜问题如何解决
Flink SQL 在快手实践问题之Group Window Aggregate 中的数据倾斜问题如何解决
186 1
|
SQL 数据库
SQL GROUP BY 语句
SQL GROUP BY 语句
93 0
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
211 0
|
SQL
SQL中GROUP BY语句与HAVING语句的使用
SQL中GROUP BY语句与HAVING语句的使用
487 1
|
SQL 存储 Oracle
SQL,Group By 真扎心,原来是这样
SQL,Group By 真扎心,原来是这样
132 0
|
SQL 关系型数据库 数据处理
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
详解SQL语句中的GROUP BY和聚合函数COUNT、SUM、AVG、MIN和MAX。
2630 0
|
SQL Oracle 关系型数据库
Oracle PL/SQL基础知识及应用案例
Oracle PL/SQL基础知识及应用案例
249 0

热门文章

最新文章