📜  SQL – 带有 Group By 子句的 count()(1)

📅  最后修改于: 2023-12-03 14:47:36.891000             🧑  作者: Mango

SQL – 带有 Group By 子句的 count()

在SQL中,使用GROUP BY子句可以将数据按照某一列或多列分组,然后对每一组数据进行聚合计算,比如COUNT()函数可以计算出每一组中行的数量。下面我们来看一下GROUP BY子句和COUNT()函数的用法及效果。

语法

GROUP BY子句和COUNT()函数的基本语法如下:

SELECT column_name, COUNT(*)
FROM table_name
GROUP BY column_name;

其中,column_name是按照哪一列或多列分组统计,可以是表中的任意列名称,table_name为表名。

示例

以下我们以一个销售订单表为例来说明GROUP BY子句和COUNT()函数的用法:

order_id | customer_id | order_date -------- | ----------- | ---------- 1 | 1 | 2021-05-01 2 | 2 | 2021-05-02 3 | 1 | 2021-05-03 4 | 3 | 2021-05-04 5 | 2 | 2021-05-05 6 | 2 | 2021-05-06 7 | 1 | 2021-05-07

我们想统计每个客户的订单数量。此时,我们可以使用以下SQL语句:

SELECT customer_id, COUNT(*)
FROM sales_orders
GROUP BY customer_id;

结果如下所示:

customer_id | COUNT(*) ----------- | -------- 1 | 3 2 | 3 3 | 1

可以看出,该SQL语句将sales_orders表按照customer_id列分组,然后对每一组数据使用COUNT(*)函数进行计数,最后得到了每个客户的订单数量。

注意事项

在使用GROUP BY子句时需注意以下几点:

  • GROUP BY子句一般都需要与HAVING子句搭配使用,用来限定聚合结果集的数据;
  • GROUP BY子句中必须包含选中的列或表达式中的所有列;
  • 如果使用了聚合函数,比如COUNT()SUM(),则不能使用DISTINCT
结语

本文介绍了SQL中GROUP BY子句和COUNT()函数的用法,以及注意事项,希望能对大家有所帮助。