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

时间:2019-06-13 11:03:44

标签: superset apache-superset

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

我尝试了SUM(col_name),它可以工作。我也尝试了SUM(col_name)/ COUNT(col_name),这也有效。

我要使用的指标: SUM(列名)/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;

2 个答案:

答案 0 :(得分:0)

我认为这是在Oracle引擎上。 SQLAlchemy中的Superset或Oracle方言中似乎都存在一个错误,该错误导致外部查询的显示不带引号。通过将指标的别名更改为不带特殊字符的所有大写字母,例如MY_SUM,查询应成功完成。

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

答案 1 :(得分:0)

似乎在使用自定义SQL指标时,您必须为指标命名(例如“ ABC”)。然后,该指标获得了别名“ ABC”,并且查询工作正常:

选择“ ABC” 从   (SELECT SUM(col_name)/ 2700000 AS“ ABC”    来自mytable    订单总和(col_name)/ 2700000 DESC) ROWNUM <= 50000;