写点什么

YashanDB COUNT 函数

作者:YashanDB
  • 2025-04-24
    广东
  • 本文字数:1091 字

    阅读完需:约 4 分钟

COUNT 函数按给定参数expr统计记录行数,本函数返回一个 BIGINT 的数值,且永远不会返回 NULL。

在单行计算中,当 expr 的值为 NULL 时,函数返回 0。

在多行计算中,当 expr 为字面量、变量、常量时,函数统计的是所有行,包括空行。否则,函数将忽略 expr 值为空的行,当所有行均为空时,计算结果为 0。

聚集函数不可嵌套,因此 expr 为除聚集函数之外的其他通用表达式,其类型可以是 UDT 以外的任意数据类型。

*

表示统计所有的行,包括空行。

DISTINCT

表示将表达式结果进行重复过滤,统计的是所有不重复的非空行。

ALL

默认值,表示不对表达式结果进行重复过滤,统计的是所有非空行。

示例

--统计机构表的行数SELECT COUNT(1) res FROM branches;                  RES---------------------                   12  --统计机构表中area_no字段非空的行数,该语句与SELECT COUNT(ALL area_no) FROM branches查询结果一致SELECT COUNT(area_no) res FROM branches;                  RES---------------------                   10  --统计机构表中area_no字段非空且不值不相同的行数SELECT COUNT(DISTINCT area_no) res FROM branches;                  RES---------------------                    4
复制代码

OVER

当指定 OVER 关键字时,COUNT 将作为窗口函数,并支持滑动窗口,返回多行的统计行数。

analytic_clause

窗口函数通用语法。

示例

--finance_info表记录了分年、月、机构的收入情况SELECT year,month,branch,revenue_total FROM finance_info;YEAR  MONTH BRANCH REVENUE_TOTAL ----- ----- ------ ------------- 2001  01    0201            28882021  01    0201           288882021  01    0101           388882021  02    0101           37778
--分年统计每月存在收入的机构数SELECT year,month,COUNT(revenue_total) OVER (PARTITION BY year ORDER BY month) toallFROM finance_info;YEAR MONTH TOALL----- ----- --------------------- 2001 01 12021 01 22021 01 22021 02 3
--分年统计每月年初至今存在收入的机构数SELECT year,month,COUNT(revenue_total) OVER (PARTITION BY year ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) tonowFROM finance_info;YEAR MONTH TONOW ----- ----- --------------------- 2001 01 12021 01 12021 01 22021 02 3
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB COUNT函数_yashandb_YashanDB_InfoQ写作社区