SuperAPI AI 工具集

looker-expressions

数据与分析

查看项目

更新于 11-01 04:52

技能介绍

Looker 表达式技能面向在 Looker 中编写表达式的人员,重点厘清同一套表达式语法在不同上下文中由不同执行引擎求值所带来的差异,并给出常见 SQL 习惯在 Looker 表达式中的正确写法。

用途与上下文边界

资料将表达式上下文分为几类:表计算在查询返回后于内存中对展示行求值;自定义维度与自定义度量会编译进仓库 SQL 的 SELECT、GROUP BY 或聚合表达式;自定义筛选会编译进 WHERE,且必须返回 yes/no,只能引用维度;LookML 数据测试的 assert 表达式使用与表计算相同的内存引擎,要求每行返回 yes,explore_source 结果上限为 5000 行;NDT 的 expression_custom_filter 则下推为 WHERE,只允许引用维度。物料还提醒,单字段简写字符串(如 "this year"、"-Cancelled"、">=30")属于筛选表达式而非 Looker 表达式。

主要能力:语法规则与陷阱对照

技能强调函数名必须小写(如 round、if、is_null),逻辑运算符必须大写(AND、OR、NOT),逻辑常量使用不带引号的小写 yes、no、null。小于 1 的小数需带前导零,字符串使用双引号,行注释以 # 开头。资料以对照表列出常见错误:nullif 不存在,应改用 if 判断零值;SQL 的 CASE WHEN 不适用,应使用 case(when(...)) 或 if;字符串拼接不能用 + 或 ||,应使用 concat;乘方使用 power 而非 ^;向上取整函数名是 ceiling 而非 ceil;add_days 的数字参数在前、日期在后,diff_days 的起止日期顺序与 SQL 相反;substring 的起始位置从 1 开始计数;contains 区分大小写。

表计算模式

内容包括安全除法与空值处理、占展示列与占 SQL 总计的百分比(后者需 total 参数)、累计与均值、环比变化(结合 offset 与排序方向)、基于 offset_list 的移动平均,以及透视表中的列间变化与行占比。进阶部分用 index、match、run 与 offset_list 等函数在内存中模拟 Excel 的 INDEX/MATCH:单键查找、全局最大值定位、多条件复合查找,以及按维度分区的小计、累计、末值与分区最大值。还给出对最近 N 个满足条件的行求平均的做法,通过 running_total 记录符合条件行的序号,再用 match 动态回跳。

使用方式

资料展示通过 Looker SDK 的 run_inline_query(result_format="json")与 create_query 传入 dynamic_fields(JSON 编码字符串)来运行表计算和自定义字段。自定义维度或度量必须同时出现在 dynamic_fields 与 fields 中;自定义度量需用 based_on 指向隐藏字段;在自定义字段和自定义筛选中可通过反引号嵌入筛选简写并配合 matches_filter 使用。自定义筛选表达式适用于需要跨视图字段比较或跨列 OR 条件的 WHERE 场景。LookML 数据测试示例展示了用 explore_source 投影字段后断言取整后的指标相等或检查不变式。

适用场景与限制

适合需要编写或审查 Looker 表计算、自定义字段、自定义筛选与 LookML 测试断言的分析与建模人员。需注意:表计算的列函数只能看到返回行,截断时要用总计字段;数据库排序须排在表计算排序之前;公式含 offset 或查询触及行数上限时,Looker 会禁用该表计算的排序;数据测试所用字段必须完整限定名,并在 explore_source 中投影为列。资料未提供该技能本身的收费、安装步骤或平台信息。