学习笔记,仅供参考,有错必纠
参考自:某不知名课程
文章目录
- 计算字段
- 逻辑运算
计算字段
逻辑运算
IF
语法:
//基本用法
IF 逻辑判断 THEN 为TRUE时的输出结果
ELSE 为FALSE时的输出结果
END
//高级用法
IF 逻辑判断 THEN 为TRUE时的输出结果
ELSEIF 逻辑判断 THEN 为TRUE时的输出结果
ELSE 为FALSE时的输出结果
END
- 举个例子
对于下面的数据,我们首先创建计算字段:
键入如下代码,对记录数进行分割:
得到新字段if_demo1
:
点击显示筛选器
:
只显示记录少的字段:
CASE…WHEN…
语法:
CASE 字段
WHEN 值1 THEN 输出结果1
WHEN 值2 THEN 输出结果2
WHEN 值3 THEN 输出结果3
WHEN 值… THEN 输出结果…
END
- 举个例子
同样,对于上面的数据,我们增加一个计算字段:
点击显示筛选器
:
此时,可以进行筛选了。
空值判断
语法:
ISNULL(字段)
IFNULL(字段,字段值为空时的值)
ZN(字段)
ISNULL
:判断指定单元格是否为空,输出结果为TRUE或FALSE;
IFNULL
:判断指定单元格是否为空,若为空则输出指定结果;
ZN
:用0替换为空的单元格.
日期运算
语法:
DATE(输入)
DATE(STR(年)+','+STR(月)+','+STR(日))
TODAY()
YEAR(日期字段)
MONTH(日期字段)
DAY(日期字段)
DATE:将输入的内容转为日期格式(精确到日);
DATETIME:将输入的内容转为日期格式(精确到分钟);
TODAY:输出当天的系统日期;
YEAR:从日期中截取年
,输出结果为整数;
MONTH:从日期中截取月
,输出结果为1-12
;
DAY:从日期中截取日
,输出结果为1-31
.
文本截取
语法:
LEN(字段/字符串)
LEFT(字段/字符串, n)
RIGHT(字段/字符串, n)
MID(字段/字符串, 起始位置, 截取的长度)
CONTAINS(字段/字符串, 被查找的文本)
REPLACE(字段/字符串, 被替换的文本, 新文本)
LEN:输出字符串的长度(整数);
LEFT:从字符串起始位置(左边)开始截取;
RIGHT:从字符串结束位置(右边)开始截取;
MID:从指定起始位置开始截取文本;
CONTAINS:判断字符串是否包含指定文本,输出结果为TRUE或FALSE;
REPLACE:用指定文本,替换字符串中特定文本.
位置运算
语法:
RANK(聚合后的度量, 'asc') //升序
RANK(聚合后的度量, 'desc') //降序
INDEX()
LOOKUP(聚合的度量, 偏移量)
FIRST()
LAST()
RANK:计算当前行在分区中的排名,默认为降序;
INDEX:计算当前行在分区中的索引,即序号;
LOOKUP:返回目标行预第一行/最后一行,指定偏移量的数值;
FIRST:计算当前行到分区第一行的行数,0到负无穷;
LAST:计算当前行到分行最后一行的行数,0到正无穷.
统计指标
语法:
CORR([度量1], [度量2])
STDEV([度量])
CORR:计算两个度量的相关性,最大值为1,最小值为-1。相关性绝对值越接近1, 说明两个变量相关性越强(一个变量增大,另一个变量同时增大或减少),越接近 0,说明变量的相关性越弱(一个变量增大或减少,另一个变量基本不变);
STDEV:计算度量的的标准差(它反映组内个体间的离散程度).