3

我基于保存的查询在 Apache Superset 中创建了一个可视化。如何根据过滤框中过滤的值更新查询?

我已经尝试过 Jinja,并设法通过模板参数将硬编码变量传递给我的查询。现在我只需要将 Jinja 连接到过滤器框,以便通过过滤器而不是硬编码获得值。

4

2 回答 2

2

我发现使用filter_values通过此文件添加到 Jinja 上下文的函数可以做到这一点:https ://github.com/apache/superset/blob/master/superset/jinja_context.py

该文件中的示例显示了如何构建从过滤器框中提取值的模板化查询:

SELECT action, count(*) as times
FROM logs
WHERE action in ( {{ "'" + "','".join(filter_values('action_type')) + "'" }} )
GROUP BY action

因此,如果您有一个用于为 选择值的过滤器框action_type,则这些值将由filter_values.

于 2021-02-10T18:00:40.387 回答
1

过滤器中使用的列名在另一个表中也应该相同。你试过了吗?如果列名不同,则使用更改的列名创建物化视图或重命名表本身中的列

于 2019-02-16T18:55:51.170 回答