如何在 Apache Superset 中编写有效的自定义 SQL 指标?我需要编写一个指标,如:SUM(col_name)/2700000.0 但我收到错误

How to write a valid custom SQL metric in Apache Superset? I need to write a metric like: SUM(col_name)/2700000.0 but I am getting error

我想在 Apache Superset Big Number 可视化类型中使用自定义 sql 指标。我想使用如下指标:SUM(col_name)/2700000.0,但它不起作用。

我试过 SUM(col_name) 并且有效。我也尝试过 SUM(col_name)/COUNT(col_name) 并且这也有效。

我尝试使用的指标: SUM(col_name)/2700000.0

我希望指标能够正常工作,但我却收到错误消息:

ORA-00904: "col_name": 标识符无效

当我点击汉堡包图标并查看查询时,我可以看到:

SELECT SUM(col_name)/2700000.0
FROM
  (SELECT SUM(col_name)/2700000.0 AS "SUM(col_name)/2700000.0"
   FROM mytable
   ORDER BY SUM(col_name)/2700000.0 DESC)
WHERE ROWNUM <= 50000;

我假设这是在 Oracle 引擎上。 SQLAlchemy 中的 Superset 或 Oracle 方言中似乎存在一个错误,导致外部查询在不带引号的情况下呈现。通过将指标的别名更改为全部大写且没有特殊字符,例如MY_SUM,查询应成功完成。

编辑:此错误已在 SQLAlchemy 1.3.5 中修复,并且自 2019 年 6 月 19 日起对 Superset 主分支进行了必要的更改。

似乎在使用自定义 SQL 指标时,您必须为指标命名(例如 "ABC")。然后指标有一个别名 "ABC" 并且查询工作正常:

SELECT "ABC" 从 (SELECT SUM(col_name)/2700000 AS "ABC" 从我的表 按总和排序(col_name)/2700000 降序) 其中 ROWNUM <= 50000;