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表来演示:
Customers表
Orders表
GROUP BY实例
查询居住在各个城市的客户分别有多少个。我们可以这样写SQL:
SELECT 城市,COUNT(*) AS 客户数量 FROM Customers GROUP BY 城市
结果:
从上面我们可以看到,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.城市
结果:
因为没有北京和杭州的用户购买产品,所以订单数量为0
批注
GROUP BY主要作用是用来进行分组聚合,也有时候会用来进行排重,与DISTINCT关键字作用类似。常用HAVING关键字一起使用,用来对分完组后的数据进一步的筛选,属于常用关键字之一。此外还经常与集合进行一起使用,这里不作扩展。