COUNT¶
说明¶
计算输入参数中元素的个数,一般用于计算查询结果中的行数,和SQL92标准规定的COUNT函数一致。
参数¶
expr
一个表达式,不允许使用聚集函数和子查询。
*
表示要计算应该计算所有行以返回表中行的总数。COUNT(*) 不需要 expr 参数,因为根据定义,该函数不使用有关任何特定列的信息。COUNT(*) 返回指定表中行的数而不消除重复。它对每行分别进行计数,包括含有空值的行。
analytic_clause
一个分析语句(包含分区、排序、窗口信息)。详细说明参见 分析函数 一节。
返回值¶
计算出的行数。
示例¶
示例1: 使用分析函数 COUNT 计算总数
-- 清理环境
DROP TABLE tab1 CASCADE;
-- 创建表并插入数据
create table tab1(id INT, a INT, b INT);
INSERT INTO tab1 VALUES(1, 21, 55);
INSERT INTO tab1 VALUES(2, 21, 56);
INSERT INTO tab1 VALUES(3, 21, 48);
INSERT INTO tab1 VALUES(4, 22, 70);
INSERT INTO tab1 VALUES(5, 22, 65);
INSERT INTO tab1 VALUES(6, 11, 40);
INSERT INTO tab1 VALUES(7, 11, 43);
INSERT INTO tab1 VALUES(8, 31, 77);
INSERT INTO tab1 VALUES(9, 32, 80);
SELECT * FROM tab1 ORDER BY id;
ID(int) |A(int) |B(int) |
-------------------------------------
1 |21 |55 |
-------------------------------------
2 |21 |56 |
-------------------------------------
3 |21 |48 |
-------------------------------------
4 |22 |70 |
-------------------------------------
5 |22 |65 |
-------------------------------------
6 |11 |40 |
-------------------------------------
7 |11 |43 |
-------------------------------------
8 |31 |77 |
-------------------------------------
9 |32 |80 |
总数目:9
-- 使用分析函数 COUNT 计算总数
SELECT id, a, b, COUNT(b) OVER (PARTITION BY a) FROM tab1 order by id;
ID(int) |A(int) |B(int) |COUNT(int) |
-----------------------------------------------------
1 |21 |55 |3 |
-----------------------------------------------------
2 |21 |56 |3 |
-----------------------------------------------------
3 |21 |48 |3 |
-----------------------------------------------------
4 |22 |70 |2 |
-----------------------------------------------------
5 |22 |65 |2 |
-----------------------------------------------------
6 |11 |40 |2 |
-----------------------------------------------------
7 |11 |43 |2 |
-----------------------------------------------------
8 |31 |77 |1 |
-----------------------------------------------------
9 |32 |80 |1 |
总数目:9
-- 删除表
DROP TABLE tab1;