# 函数

按类别列出 MatrixOne 常用内置函数。名称以引擎识别的规范名为准；部分函数存在别名（如 `CEIL`/`CEILING`、`LCASE`/`LOWER`）。本页为**总表**，不逐函数展开参数细节。

运算符、`CAST`、`CASE`/`IF` 见[运算符](operators.md)。

## 聚合

| 函数 | 作用 |
| --- | --- |
| `ANY_VALUE()` | 组内任取一个值 |
| `AVG()` | 算术平均 |
| `BIT_AND()` / `BIT_OR()` / `BIT_XOR()` | 按位聚合 |
| `BITMAP` 系列 | 位图相关去重/统计 |
| `COUNT()` | 行数 |
| `GROUP_CONCAT()` | 组内字符串拼接 |
| `MAX()` / `MIN()` | 最大 / 最小 |
| `MEDIAN()` | 中位数 |
| `STDDEV_POP()` | 总体标准差 |
| `SUM()` | 求和 |
| `VARIANCE()` / `VAR_POP()` | 总体方差 |

## 日期时间

| 函数 | 作用 |
| --- | --- |
| `CURDATE()` / `NOW()` / `SYSDATE()` / `CURRENT_TIMESTAMP()` / `UTC_TIMESTAMP()` | 当前日期或时间 |
| `DATE()` / `TIME()` / `TIMESTAMP()` | 截取或规范化日期时间 |
| `DATE_ADD()` / `DATE_SUB()` | 加减时间间隔 |
| `DATEDIFF()` / `TIMEDIFF()` / `TIMESTAMPDIFF()` | 日期间隔 |
| `DATE_FORMAT()` / `STR_TO_DATE()` / `TO_DATE()` | 格式化与解析 |
| `EXTRACT()` | 抽取年/月/日等部件 |
| `YEAR()` / `MONTH()` / `DAY()` / `HOUR()` / `MINUTE()` / `SECOND()` | 部件取值 |
| `DAYOFYEAR()` / `WEEK()` / `WEEKDAY()` | 年中日、周、工作日索引 |
| `FROM_UNIXTIME()` / `UNIX_TIMESTAMP()` | Unix 时间戳互转 |
| `TO_DAYS()` / `TO_SECONDS()` | 相对历元的天数/秒数 |
| `CONVERT_TZ()` | 时区转换 |

## 数学

| 函数 | 作用 |
| --- | --- |
| `ABS()` | 绝对值 |
| `CEIL()` / `CEILING()` / `FLOOR()` / `ROUND()` | 取整与四舍五入 |
| `EXP()` / `LN()` / `LOG()` / `LOG2()` / `LOG10()` / `POWER()` | 指数与对数 |
| `PI()` | 圆周率 |
| `RAND()` | (0,1) 随机数 |
| `SIN()` / `COS()` / `TAN()` / `COT()` / `ASIN` 类 / `ATAN()` / `SINH()` 等 | 三角函数与双曲 |

（以实例实际支持列表为准；上表覆盖文档中常见集合。）

## 字符串

| 函数 | 作用 |
| --- | --- |
| `CONCAT()` / `CONCAT_WS()` | 拼接 |
| `LENGTH()` / `CHAR_LENGTH()` / `BIT_LENGTH()` | 长度（字节/字符/比特） |
| `LEFT()` / `SUBSTRING()` / `SUBSTRING_INDEX()` / `SPLIT_PART()` | 截取与按分隔符切分 |
| `LOWER()` / `LCASE()` / `UPPER()` / `UCASE()` | 大小写 |
| `LTRIM()` / `RTRIM()` / `TRIM()` / `LPAD()` / `RPAD()` / `SPACE()` / `REPEAT()` | 空白与填充 |
| `LOCATE()` / `INSTR()` / `FIND_IN_SET()` / `FIELD()` | 查找位置 |
| `STARTSWITH()` / `ENDSWITH()` / `EMPTY()` | 前缀/后缀/空串判断 |
| `REVERSE()` | 反转 |
| `HEX()` / `UNHEX()` / `BIN()` / `OCT()` | 进制与十六进制 |
| `TO_BASE64()` / `FROM_BASE64()` | Base64 |
| `MD5()` / `SHA1()`/`SHA()` / `SHA2()` | 摘要 |
| `FORMAT()` | 数字千分位等格式化 |

### 正则

| 函数 | 作用 |
| --- | --- |
| `REGEXP_LIKE()` / `NOT REGEXP` | 是否匹配 |
| `REGEXP_INSTR()` | 匹配起始位置 |
| `REGEXP_SUBSTR()` | 提取匹配子串 |
| `REGEXP_REPLACE()` | 替换匹配部分 |

## 向量

配合 [VECTOR 类型](data-types.md)：

| 函数 / 能力 | 作用 |
| --- | --- |
| 向量四则 `+ - * /` | 逐元素运算 |
| `INNER_PRODUCT()` | 内积 |
| `L2_DISTANCE()` / `COSINE_DISTANCE()` / `COSINE_SIMILARITY()` | 距离与相似度 |
| `L1_NORM()` / `L2_NORM()` / `NORMALIZE_L2()` | 范数与归一化 |
| `VECTOR_DIMS()` | 维度 |
| `SUBVECTOR()` | 子向量 |
| `CLUSTER_CENTERS()` | 聚类中心 |
| 向量上的 `ABS` / `SQRT` / `SUMMATION` / `CAST` 等 | 元素级或汇总辅助 |

## JSON

| 函数 | 作用 |
| --- | --- |
| `JSON_EXTRACT()` | 按路径提取 |
| `JSON_EXTRACT_STRING()` / `JSON_EXTRACT_FLOAT64()` | 提取为字符串 / 浮点 |
| `JSON_QUOTE()` / `JSON_UNQUOTE()` | 加引号 / 去引号 |
| `JSON_ROW()` | 行转 JSON 数组 |
| `JQ()` / `TRY_JQ()` | jq 表达式变换（后者容错） |

## 表函数

| 函数 | 作用 |
| --- | --- |
| `GENERATE_SERIES()` | 生成序列行 |
| `UNNEST()` | 展开 JSON 数组为表 |

## 窗口

| 函数 | 作用 |
| --- | --- |
| `ROW_NUMBER()` | 连续序号 |
| `RANK()` | 排名（并列后跳号） |
| `DENSE_RANK()` | 排名（并列不跳号） |

## 系统与会话

| 函数 | 作用 |
| --- | --- |
| `CURRENT_USER()` / `CURRENT_USER_NAME()` | 当前用户 |
| `CURRENT_ROLE()` / `CURRENT_ROLE_NAME()` | 当前角色 |
| `VERSION()` | 版本信息（若开放） |
| `PURGE_LOG()` | 清理系统表中日志类数据（高权限） |

## 其他

| 函数 | 作用 |
| --- | --- |
| `UUID()` | 生成 UUID |
| `SLEEP()` | 暂停指定秒数 |
| `SAMPLE()` | 采样以缩小扫描范围 |
| `LOAD_FILE()` / `SAVE_FILE()` | 读写 DATALINK 指向的文件内容 |
| `STAGE_LIST()` | 列出 Stage 中目录与文件 |
| `SERIAL_EXTRACT()` | 从序列/元组中取元素 |
| `LAST_INSERT_ID()` / `LAST_QUERY_ID()` | 最近插入 ID / 查询 ID（信息类） |

## 相关页面

- [运算符](operators.md)
- [数据类型](data-types.md)
- [SQL 语句](statements.md)
