node.js - 如何从查询中删除 CubeJS 默认的 Group By 子句

标签 node.js cube.js

CubeJS 当我们在其中运行任何查询时,默认应用 Group By 子句。

例如,下面是我对员工 Cube 的 JSON 查询:

{
  "dimensions": [
    "Employee.date",
    "Employee.state",
    "Employee.id"
  ],
  "timeDimensions": [],
  "filters": []
}

当我在 CubeJS 中运行上面的 JSON 查询时,它将运行在 SQL 下面:

SELECT
  `employee`.updatedAt `employee__date`,
  `employee`.state `employee__state`,
  `employee`.EmpId `employee__id`
FROM
  DEMO.Employee AS `employee`
GROUP BY
  1,
  2,
  3
ORDER BY
  1 ASC
LIMIT
  10000

下面是我拥有的员工多维数据集作为引用:

cube(`Employee`, {
  sql: `SELECT * FROM DEMO.Employee `,
  title: `Employee`,

  measures: {
    count: {
      type: `count`
    }
  },
  dimensions: {
    id: {
      sql: `EmpId`,
      type: `string`
    },
    date: {
      sql: `updatedAt`,
      type: `time`
    },
    state: {
      sql: `state`,
      type: `string`
    }
  }
});

如果我期望低于 SQL,我需要创建什么 JSON 查询:

SELECT
  `employee`.updatedAt `employee__date`,
  `employee`.state `employee__state`,
  `employee`.EmpId `employee__id`
FROM
  DEMO.Employee AS `employee`
WHERE
  `employee`.updatedAt ` BETWEEN '2019-01-01' AND '2019-05-01'
LIMIT
  10000

有没有办法从 CubeJS 本身生成的 SQL 查询中删除 Group By 子句。

最佳答案

自 0.10.62 起就有 ungrouped 查询属性:https://cube.dev/docs/query-format#query-properties 。在您的情况下,可以使用以下查询:

{
  "dimensions": [
    "Employee.date",
    "Employee.state",
    "Employee.id"
  ],
  "timeDimensions": [],
  "filters": [],
  "ungrouped": true
}

关于node.js - 如何从查询中删除 CubeJS 默认的 Group By 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58264957/

相关文章:

javascript - node.js 应用程序发送广播消息 socket.io

javascript - 解析后如何通过回调将内容从服务传递到另一个服务到 Controller ?

javascript - Mongoose :更新文档并返回文档的特定部分

javascript - 如何在 javascript 中修复 "Error: spawn ENAMETOOLONG"(可能由 jq 引起)?

node.js - 为什么在使用 --recursive 标志运行 mocha 时嵌套的 mocha 测试套件不运行

javascript - 立方体 Js |计算 2 个日期之间的差异

javascript - 如何改进cubejs预聚合创建过程? (即使使用partitionGranularity,构建预聚合也需要很长时间)

javascript - 更改cube.js中结果的键名称

javascript - 找不到cubejs命令|安装后我无法运行命令