• cube.js 学习(七)cube.js type 以及format 说明


    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`
    }
    • 格式
    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

  • 相关阅读:
    rgba 和opacity的透明效果有什么不同
    定位 盒模型 浮动 css优先级 伪类伪元素选择器---未完成
    JS中Date对象getYear()方法和getFullYear()方法区别
    Javascript错误提示--SyntaxError: Illegal return statement
    JavaScript高级程序设计-第六章面向对象的程序设计(复习)
    为什么js加事件时不要写括号
    JS函数是如何执行的
    关于JS的总结
    我所知道的数据库6-DDL语言(续)
    我所知道的数据库5-DDL语言
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/10804569.html
Copyright © 2020-2023  润新知