智能商业分析 Quick BI 常用函数指南
Quick BI 作为阿里云提供的智能商业分析工具,提供了丰富的函数支持,帮助用户高效处理和分析数据。本文将介绍 Quick BI 中最常用的几类函数及其实际应用场景。
1. 空值处理函数:IFNULL
语法:IFNULL(expression, replacement)
功能:当表达式结果为 NULL 时,返回指定的替代值;否则返回表达式本身的值。
应用场景:
- 处理缺失的访客数据
- 避免计算中出现 NULL 值导致结果异常
示例:
IFNULL([游客数],0) + IFNULL([访客数],0)
这个公式将游客数和访客数相加,如果任一字段为空,则用 0 替代,确保总数计算的准确性。
2. 去重计数函数:COUNT(DISTINCT)
语法:COUNT(DISTINCT column)
功能:计算指定列中不重复值的数量。
应用场景:
- 统计独立用户数量
- 计算唯一员工数量
- 分析去重后的客户群体规模
示例:
COUNT(DISTINCT [员工号])
此公式用于统计系统中不重复的员工数量,避免因数据重复导致的统计偏差。
3. 详细级别表达式(LOD):
语法:LOD_INCLUDE{[dimension] : aggregation}
LOD(Level of Detail)表达式是 Quick BI 中强大的分析功能,允许在不同数据粒度级别上进行计算。Quick BI 主要支持三种 LOD 表达式类型:LOD_INCLUDE、LOD_EXCLUDE 和 LOD_FIXED。
3.1 LOD_INCLUDE
语法:LOD_INCLUDE{[维度] : 聚合函数}
功能:在当前视图的维度基础上,额外包含指定的维度进行聚合计算。
特点:
- 扩展现有分组维度
- 计算粒度比当前视图更细
- 结果会根据新增维度进行细分
示例:
LOD_INCLUDE{[产品类别] : SUM([销售额])}
如果当前视图按"地区"分组,此表达式会同时按"地区"和"产品类别"分组计算销售额总和。
适用场景:
- 需要查看更细分维度的数据
- 在现有分析基础上增加维度层次
3.2 LOD_EXCLUDE
语法:LOD_EXCLUDE{[维度] : 聚合函数}
功能:从当前视图的维度中排除指定的维度进行聚合计算。
特点:
- 减少当前分组维度
- 计算粒度比当前视图更粗
- 忽略指定维度的影响
示例:
LOD_EXCLUDE{[月份] : AVG([销售额])}
如果当前视图按"地区"和"月份"分组,此表达式会忽略"月份"维度,只按"地区"计算平均销售额。
适用场景:
- 需要对比当前详细数据与汇总数据
- 计算基准值或参考值
- 分析某个维度对整体的影响
3.3 LOD_FIXED
语法:LOD_FIXED{[维度] : 聚合函数}
功能:固定使用指定的维度进行聚合计算,完全忽略当前视图的分组维度。
特点:
- 完全独立于当前视图维度
- 计算粒度由指定维度决定
- 结果在所有行中保持一致(如果维度相同)
示例:
LOD_FIXED{[产品类别] : SUM([销售额])}
无论当前视图如何分组,此表达式始终按"产品类别"计算销售额总和。
适用场景:
- 需要绝对固定的参考基准
- 跨不同分析视角的统一计算
- 创建不随视图变化的指标
对比总结表
| 特性 | LOD_INCLUDE | LOD_EXCLUDE | LOD_FIXED |
|---|---|---|---|
| 维度处理 | 添加维度 | 移除维度 | 固定维度 |
| 计算粒度 | 更细 | 更粗 | 独立 |
| 依赖当前视图 | 是(基础上添加) | 是(基础上移除) | 否 |
| 典型用途 | 细分分析 | 基准对比 | 绝对参考 |
实际应用示例
假设我们有销售数据包含:地区、产品类别、月份、销售额
场景:分析各地区各月份的销售额,并与该地区的年度平均销售额对比
- 当前视图:按地区、月份分组
- LOD_EXCLUDE 表达式:
LOD_EXCLUDE{[月份] : AVG([销售额])}- 计算每个地区不考虑月份的平均销售额
- 对比分析:将每月销售额与地区平均值对比,识别表现优异或不佳的月份
示例:
LOD_INCLUDE{[渠道] : COUNT(DISTINCT [用户id])}
这个表达式会按渠道维度计算独立用户数,即使当前报表的分组维度不是渠道,也能获得每个渠道的准确用户统计。
4. 数值格式化函数:ROUND
语法:ROUND(expression, decimal_places)
功能:将数值四舍五入到指定的小数位数。
应用场景:
- 财务数据的精确展示
- 比率和百分比的格式化
- 提高报表的可读性
示例:
ROUND(SUM([支付金额]) / SUM([赔偿金额]), 2)
此公式计算支付金额与赔偿金额的比率,并保留两位小数,便于财务分析和决策。
5. 条件判断函数:CASE WHEN
语法:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
功能:根据不同的条件返回相应的结果值。
应用场景:
- 商品价格区间分类
- 客户等级划分
- 业绩目标达成情况判断
示例:
CASE
WHEN [商品单价] >= 100 AND [商品单价] < 200 THEN '100-200'
WHEN [商品单价] >= 300 AND [商品单价] < 400 THEN '300-400'
WHEN [商品单价] >= 500 THEN '500以上'
ELSE '其他'
END
这个表达式将商品按单价划分为不同的价格区间,便于进行价格段分析和营销策略制定。
最佳实践建议
- 组合使用:这些函数可以组合使用,创建更复杂的分析逻辑
- 性能考虑:LOD 表达式和去重计数可能影响查询性能,建议在必要时使用
- 数据验证:使用 IFNULL 等函数前,先了解数据的空值分布情况
- 业务对齐:条件判断的阈值应与业务需求保持一致

676

被折叠的 条评论
为什么被折叠?



