下载Demo报表和Excel
下载Demo报表: 计算函数与公式demo.zip (注意:将zip文件解压缩后再进行导入)
下载Demo报表Excel: 计算函数与公式demo.xlsx
-----------------------------------------------------------------------------------------------------------------------
下载 【行转列与列转行Demo】: 行转列与列转行Demo.zip
下载Excel: 行转列与列转行Demo.xlsx
度量函数 | 表达式 | 描述 |
---|---|---|
上周 | lastWeek(度量字段,日期字段) | 对应数据行日期上周的值 |
上月 | lastMonth(度量字段,日期字段) | 对应数据行日期上月的值 |
同期 | lastYear(度量字段,日期字段) | 对应数据行日期去年的值 |
周累计 | wtd(度量字段,日期字段) | 对应数据行日期周累计值 |
月累计 | mtd(度量字段,日期字段) | 对应数据行日期月累计值 |
上周累计 | lastWtd(度量字段,日期字段) | 对应数据行日期上周累计值 |
上月累计 | lastMtd(度量字段,日期字段) | 对应数据行日期上月累计值 |
同期月累计 | lastYearMtd(度量字段,日期字段) | 对应数据行日期去年的月累计值 |
年累计 | ytd(度量字段,日期字段) | 对应数据行日期的年累计值 |
同期年累计 | lastYearYtd(度量字段,日期字段) | 对应数据行日期去年的年累计值 |
以上度量函数表达式中均支持第三个可选参数:条件列; 不设置第三个参数,自动将所有维度作为条件列
第三个参数格式: columnA|columnB|columnC
度量函数 | 表达式 | 描述 |
---|---|---|
月时间进度 | monthPassed(日期字段) | 本月已经过去了百分之多少(自然日) |
年时间进度 | yearPassed(日期字段) | 本年已经过去了百分之多少(自然日) |
维度函数 | 表达式 | 描述 |
---|---|---|
序号 | _id | 增加一个自增ID |
时间月 | month(日期字段) | 获得月份 |
时间年 | year(日期字段) | 获得年份 |
时间日周 | week(日期字段) | 获得星期,例如:周一,周二 |
时间年周 | weekOfYear(日期字段,格式,偏移天数) | 获得周数,例如:第10周 偏移天数:周的其实星期,比如从周六开始计算,偏移为:+3 day |
转成日期 | parseDate(字段名,yyyyMMdd) | 将字符串或数字根据指定的格式转成日期 |
行转列 | rowToColumn(行字段名, 行值, 列字段名) | 例如,以下2个表达式可以将【本期同期】中的2个值转成列 1.将字段【本期同期】中的行值“本期”与零售金额转成当前字段的值 rowToColumn(本期同期, "本期", 零售金额) 2.将字段【本期同期】中的行值“同期”与零售金额转成当前字段的值 rowToColumn(本期同期, "同期", 零售金额) |
列转行 | columnToRow(行值A:源字段A1#目标字段A1|源字段B1#目标字段B1) | 例如: 1. 将多个指标列转成【KPI项】中的行 |
分组合计 | groupSum(指标字段, 分组字段A|分组字段B) | 例如: 1.统计各部门人数 2. 按大区和本期来合计 |
自定义 | 在进行周或月的汇总时, 总工位数或月度目标这样的指标不应该被汇总, 而是最后一天的值 | ( select 总工位数 from ( SELECT * FROM 工位出租 GROUP BY 周,日期类别,省份,场区 HAVING MAX(日期) ) t2 where t2.日期=工位出租.日期 and t2.省份=工位出租.省份 and t2.日期类别=工位出租.日期类别 and t2.周=工位出租.周 and t2.场区=工位出租.场区 ) |
运算函数 | 公式 | 描述 |
---|---|---|
计算占比 | {度量A}/total({度量A}) | 对应数据行度量A占合计的百分比 |
计算完成率 | {度量A}/{度量B} | 对应数据行度量A占度量B的比例 |
计算同比或环比 | ({度量A}-{去年度量A})/{去年度量A} | 对应数据行度量A较上期值的增长比率 |
去重计数 | countDistinct({维度A去重},度量B计数=1) | 例如: 对维度「店铺档案编」进行去重计数,但是只有「销售网点=1」的记录才参与计数 |
示例:计算上月汇总数量
select 月份,sum(数量) as 数量 ,
( select sum(数量) from workbook1 t2 where t2.月份||'-01'=date(t1.月份||'-01','-1 month') ) as 上月数量
from workbook1 t1 group by 月份
示例:计算过去第1周收入
(select sum(纯收入) from 测试数据 A where A.省份=测试数据.省份 and A.周=printf('%d周', case when cast(strftime('%j', 测试数据.日期) as int) > 300 and cast(strftime('%W', date(测试数据.日期,'+2 day', 'localtime')) as int) < 2 then '53' else strftime('%W', date(测试数据.日期,'+2 day', 'localtime')) end -1 ) )
(注:本例中的周计算是按本周六至下周五算一周)