SQL COUNT函数
时间:2018-11-15 17:50:47 来源:igfitidea点击:
在本教程中,我们将学习如何使用SQL COUNT函数获取指定表中的行数。
SQL COUNT函数介绍
COUNT函数函数的作用是:返回组中的行数。
COUNT函数的第一种形式是:
COUNT(*)
COUNT(*)函数将返回指定表或视图中的行数(包含重复项和NULL值)。
要返回排除重复项和NULL值的行数,请使用以下形式的COUNT()函数:
COUNT(DISTINCT column)
要返回包含重复行数但排除NULL值的行数,请使用以下形式的COUNT()函数:
COUNT(ALL column)
即
| COUNT() 函数 | 计算重复项? | 计算NULL值项? |
|---|---|---|
| COUNT(*) | 是 | 是 |
| COUNT(DISTINCT column) | 否 | 否 |
| COUNT(ALL column) | 是 | 否 |
SQL COUNT(*) 函数示例
基本的 SQL COUNT(*)示例
要获取orders_test表中的订单数,可以使用COUNT(*)函数,如下所示:
SELECT
COUNT(*)
FROM
orders_test;
待处理订单是发货日期为空的订单。
要获取待处理订单数,可以使用以下查询语句:
SELECT
COUNT(*) 'Pending orders'
FROM
orders_test
WHERE
shippeddate IS NULL;
带GROUP BY子句的SQL COUNT(*)示例
要获取每个客户的订单数,可以将COUNT(*)函数与GROUP by子句一起搭配使用:
SELECT
customerid, COUNT(*)
FROM
orders
GROUP BY customerid
ORDER BY COUNT(*) DESC;
GROUP BY子句用于按客户对订单进行分组。然后对于每个组,COUNT函数按客户对订单进行计数。
带HAVING子句的SQL COUNT(*)示例
若要获取拥有20个以上订单的客户,可以将COUNT函数与GROUP BY和HAVING子句一起使用:
SELECT
customerid, COUNT(*)
FROM
orders
GROUP BY customerid
HAVING COUNT(*) > 20;
GROUP BY子句按customerid将订单进行分组。
COUNT(*)函数返回每个customerid的订单数。
HAVING子句用于只获取具有20个以上订单的组。
SQL COUNT ALL 示例
要计算所有的客户数,使用下面的查询语句:
SELECT
COUNT(*)
FROM
customers;
下面的查询语句将返回除空值NULL以外的国家数:
SELECT
COUNT(ALL country)
FROM
customers;
SQL COUNT DISTINCT 示例
若要同时排除空值NULL和重复值,可以使用COUNT(DISTINCT column) 如下所示:
SELECT
COUNT(DISTINCT country)
FROM
customers;

