cube.js 对于measure以及dimension 提供了丰富的数据类型,基本满足我们常见应用的开发,同时对于不同类型也提供了
格式化的操作

measure类型

number

  • 格式
purchasesRatio: {
sql: `${purchases} / ${count} * 100.0`,
type: `number`,
format: `percent`
}

count

  • 格式
numerOfUsers: {
type: `count`,
// optional
drillMembers: [id, name, email, company]
}

countDistinct

类似sql 的count distinct

  • 格式
uniqueUserCount: {
sql: `user_id`,
type: "countDistinct"
}

countDistinctApprox

字面意思是countDistinct 的添加剂,同时和countDistinct 不一样,他是利用rollup-pre-aggregations,后端利用
hll或者类似的算法,加速数据的计算

  • 格式
uniqueUserCount: {
sql: `user_id`,
type: "countDistinctApprox"
}

sum

类似sql 的sum,但是与原生sql 不同,他将正确的计算数据,尽管连接可能导致数据重复

  • 格式
revenue: {
sql: `amount`,
type: `sum`
}

avg

类似sql 的avg 进行平均数的计算,但是与原生sql 不同,他将正确的计算数据,尽管连接可能导致数据重复

  • 格式
averageTransaction: {
sql: `${transactionAmount}`,
type: `avg`
}

min

  • 格式
dateFirstPurchase: {
sql: `date_purchase`,
type: `min`
}

max

  • 格式
dateLastPurchase: {
sql: `date_purchase`,
type: `max`
}

runningTotal

计算概述sql 中的值

  • 格式
totalSubscriptions: {
sql: `subscription_amount`,
type: `runningTotal`
}

measure格式化

百分比

  • 格式
purchaseConversion: {
sql: `${purchase}/${checkout}*100.0`,
type: `number`,
format: `percent`
}

货币

  • 格式
totalAmount: {
sql: `amount`,
type: `runningTotal`,
format: `currency`
}

dimension 类型

time

  • 格式
completedAt: {
sql: `completed_at`,
type: `time`
}

string

  • 格式
fullName: {
sql: `CONCAT(${firstName}, ' ', ${lastName})`,
type: `string`
}

number

  • 格式
amount: {
sql: `amount`,
type: `number`
}

geo

  • 格式
location: {
type: `geo`,
latitude: {
sql: `${TABLE}.latitude`,
},
longitude: {
sql: `${TABLE}.longitude`
}
}

dimension 格式

imageUrl

  • 格式
image: {
sql: `CONCAT('https://img.example.com/id/', ${id})`,
type: `string`,
format: `imageUrl`
}

id

  • 格式
image: {
sql: `id`,
type: `number`,
format: `id`
}

link

  • 格式
orderLink: {
sql: `'http://myswebsite.com/orders/' || id`,
type: `string`,
format: `link`
} crmLink: {
sql: `'https://na1.salesforce.com/' || id`,
type: `string`,
format: {
label: `View in Salesforce`,
type: `link`
}
}

货币

  • 格式
amount: {
sql: `abount`,
type: `number`,
format: `currency`
}

百分比

  • 格式
penRate: {
sql: `COALESCE(100.0 * ${uniqOpenCount} / NULLIF(${deliveredCount}, 0), 0)`,
type: `number`,
format: `percent`
}

参考资料

https://cube.dev/docs/types-and-formats

 

最新文章

  1. 安装CentOS7文字界面版后,无法联网,用yum安装软件提示 cannot find a valid baseurl for repo:base/7/x86_64 的解决方法
  2. EditPlus 3.7 中文版已经发布
  3. UE4 中在 Actor 中动态 Create Component 与ChildActor 的 小笔记
  4. ServiceStack.OrmLite 笔记8 -还是有用的姿势
  5. NOIP2000 进制转换
  6. web.config 拆分
  7. Linux usb子系统(二):USB设备驱动usb-skeleton.c
  8. ServiceAccount 枚举
  9. Java String charAt()方法
  10. Sublime编译器快捷键大全
  11. 上传图片(photoClip)
  12. mongodb删除重复数据
  13. linux的查找命令 find whereis locate
  14. 采用link方式解决zabbix对于备份监控和ORACLE日志监控由于路径不统一的问题
  15. Ubuntu 16.04安装sogou 拼音输入法
  16. C#反射遍历/查询类中的属性以及值
  17. BZOJ.1299.[LLH邀请赛]巧克力棒(博弈论 Nim)
  18. GitHub超全机器学习工程师成长路线图,开源两日收获3700+Star!【转】
  19. 20165303 预备作业3 Linux安装及学习
  20. Servlet接口、GenericServlet类、HttpServlet类

热门文章

  1. machine learning相关会议
  2. Appium_Page object设计模式
  3. 全栈项目|小书架|服务器开发-Koa2 连接MySQL数据库(Navicat+XAMPP)
  4. idea常用插件安装
  5. c#生成高清字体图片
  6. jenkins报错 Upgrading Jenkins. Failed to update the default Update Site 'default'. Plugi
  7. IDEA中导入Maven模块
  8. elk使用不足及弥补报警措施
  9. Pandas进阶笔记 (0)为什么写这个系列
  10. noi 7827 质数的和与积