我正在使用带有 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
列强制使用不同别名的方法。
有谁知道解决方法?