SQL COUNT()函数
SQL COUNT() 函数用于计算特定列中非NULL值的数量。换句话说,COUNT()函数返回与指定条件匹配的行数。
如果您以 COUNT(*) 的形式调用此函数,它将返回指定表中记录的数量,不考虑NULL值。
假设我们在SQL数据库中记录了选民的信息,并且希望计算选民的数量;手动计算将非常困难。但是,通过使用SQL SELECT COUNT()语句,我们可以非常容易地完成它。
语法
下面是SQL COUNT()函数的语法 –
SELECT COUNT(name_column) AS alias_name FROM table_name WHERE condition;
参数
- column_name − 我们想要计算计数值的列的名称。
示例
以下是一个演示此函数用法的示例。假设我们使用CREATE语句在SQL数据库中创建了名为customers的表,如下所示:
CREATE TABLE customers(ID INT NOT NULL,
NAME VARCHAR(30) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(30),
SALARY DECIMAL(18, 2));
该表存储了ID、姓名、年龄、地址和工资。现在我们正在使用INSERT语句向顾客表中插入7条记录。
INSERT INTO customers VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
INSERT INTO customers VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
INSERT INTO customers VALUES(3, 'Kaushik', 23, 'Kota', 2000.00);
INSERT INTO customers VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
INSERT INTO customers VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
INSERT INTO customers VALUES(6, 'Komal', 22, 'MP', 4500.00);
INSERT INTO customers VALUES(7, 'Aman', 23, 'Ranchi', null);
INSERT INTO customers VALUES(8, 'Kaushik', 24, 'Ooti', 2000.00);
以下是客户表 –
+----+----------+-----+-----------+---------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+---------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | Kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Aman | 23 | Ranchi | NULL |
| 8 | Kaushik' | 24 | Ooti | 2000.00 |
+----+----------+-----+-----------+---------+
以下是根据客户表中的AGE列计算行数的查询:
SELECT COUNT(AGE) AS num_of_age FROM customers;
输出
+------------+
| num_of_age |
+------------+
| 7 |
+------------+
示例
在下面的示例中,我们正在使用where子句和SQL COUNT()函数计算满足特定条件的AGE列实体数量,从customers表中检索”age”值等于23的记录数量。
SELECT COUNT(AGE) AS num_of_age FROM customers WHERE AGE = 23;
输出
+------------+
| num_of_age |
+------------+
| 2 |
+------------+
示例
在下面的示例中,我们使用groupby子句按”name”列对上面创建的customers表进行分组,并计算Salary列中的数值数量。
SELECT NAME, COUNT(SALARY) AS Count FROM customers GROUP BY NAME;
输出
+----------+-------+
| NAME | Count |
+----------+-------+
| Aman | 0 |
| Ramesh | 1 |
| Khilan | 1 |
| kaushik | 1 |
| Chaitali | 1 |
| Hardik 1 |
| Komal | 1 |
+----------+-------+