Как написать правильную пользовательскую метрику SQL в Apache Superset? Мне нужно написать метрику, например: SUM (col_name) /2700000.0, но я получаю ошибку - PullRequest
0 голосов
/ 13 июня 2019

Я хочу использовать собственную метрику sql в типе визуализации Apache Superset Big Number.Я хочу использовать метрику, например: SUM (имя_колонки) /2700000.0, но она не работает.

Я попытался использовать SUM (имя_колонки), и она работает.Я пробовал также 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;

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Кажется, что при использовании пользовательской метрики SQL вы должны назвать метрику (например, "ABC"). Затем метрика получила псевдоним "ABC" и запрос работает нормально:

ВЫБРАТЬ "ABC" ОТ (ВЫБЕРИТЕ СУММУ (col_name) / 2700000 AS "ABC" ИЗ mytable ЗАКАЗАТЬ ПО СУММЕ (col_name) / 2700000 DESC) ГДЕ ROWNUM <= 50000; </p>

0 голосов
/ 14 июня 2019

Я предполагаю, что это на движке Oracle.Кажется, есть ошибка в Superset или диалекте Oracle в SQLAlchemy, из-за которой внешний запрос обрабатывается без кавычек.При изменении псевдонима метрики на все заглавные буквы без специальных символов, например, MY_SUM, запрос должен успешно завершиться.

Редактировать: эта ошибка была исправлена ​​в SQLAlchemy 1.3.5, и были внесены необходимые изменения вГлавный филиал Superset по состоянию на 19 июня 2019 года.

...