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;