0

我正在使用带有 Dremio 后端的 Superset for BI。

这很好用,除非尝试更改日期范围选择的“时间粒度”。

在 Superset 中,如果我选择不同的时间粒度,例如“day”,它会正确地创建一个 GROUP BY 对本机查询的修改,如下所示 -

SELECT DATE_TRUNC('day', dob) AS dob,
       group_name AS group_name,
       location_name AS location_name,
       sum(amount) AS net
FROM  my_table
WHERE dob >= TO_DATE('2021-09-03', 'YYYY-MM-DD')
  AND dob < TO_DATE('2021-09-10', 'YYYY-MM-DD')
GROUP BY DATE_TRUNC('day', dob),
         group_name,
         location_name
ORDER BY net DESC
LIMIT 10000

但这失败了Expression 'my_table.dob' is not being grouped

如果我直接在 Dremio 中执行查询并为该列指定不同的别名,它会起作用 -

SELECT DATE_TRUNC('day', dob) AS d,
       group_name AS group_name,
       location_name AS location_name,
       sum(amount) AS net
FROM  my_table
WHERE dob >= TO_DATE('2021-09-03', 'YYYY-MM-DD')
  AND dob < TO_DATE('2021-09-10', 'YYYY-MM-DD')
GROUP BY DATE_TRUNC('day', dob),
         group_name,
         location_name
ORDER BY net DESC
LIMIT 10000

Superset 使用与原始列名相同的别名,因此动态更改日期时间粒度被破坏。我不知道为time列强制使用不同别名的方法。

有谁知道解决方法?

4

0 回答 0