Как удалить предложение CubeJS default Group By из запроса

CubeJS по умолчанию применяет предложение Group By, когда мы запускаем в нем любой запрос.

Например, ниже приведен мой запрос JSON для куба сотрудника:

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

Когда я запускаю выше JSON-запроса в CubeJS, он будет работать ниже 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`
    }
  }
});

Какой будет запрос JSON, который мне нужно будет создать, если я ожидаю ниже SQL:

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

ИЛИ

Есть ли способ удалить предложение Group By из SQL-запроса, созданного самим CubeJS.

1 ответ

Решение

Есть ungroupedquery свойство с 0.10.62 для этого: https://cube.dev/docs/query-format. В вашем случае можно использовать следующий запрос:

{
  "dimensions": [
    "Employee.date",
    "Employee.state",
    "Employee.id"
  ],
  "timeDimensions": [],
  "filters": [],
  "ungrouped": true
}
Другие вопросы по тегам