cardinality
select cardinality(array(1, 2, 3))
split
select split('a,b,c', ',')
select cardinality(split('a,b,c', ','))
时间格式化/反格式化
select from_unixtime(to_unix_timestamp('2025090210', 'yyyyMMddHH'), 'yyyy-MM-dd HH:mm:ss')
时间函数
| 函数 | 类型 | 输出 |
|---|
| current_date() | DateType | 2025-09-02 |
| now() | TimestampType | 2025-09-02 14:46:55.278 |
| current_timestamp() | TimestampType | 2025-09-02 14:41:15.495 |
| date_trunc(format, timestamp) | TimestampType | 截断到指定精度 |
| date_add(start, days) | DateType | date_add(current_date(), -1) |
数据函数
| 函数 | 功能 | 输出 |
|---|
| round(col, scale=None) | 截断数值精度(四舍五入) | round(2.5, 0) = 3 (decimal) |
窗口函数
| 函数 | 功能 | 输出 |
|---|
| lag(col, offset=1, default=None) | 获取当前前n行在某一列的值 | |
- lag常用于:
- 比较当前行和上一行的值,如环比、变化监测
- 标记是否发生变化,如状态转换,分组起点
- 计算时间差,增量等