Использование фильтра «Одна дата» для диапазона дат в пользовательском фильтре superset - PullRequest
0 голосов
/ 30 апреля 2020

В Superset я хотел бы использовать только один выбор даты, но использовать его для диапазона дат, например, 7 дней назад. например: Выбор даты: с 2020-04-18 по 2020-04-18

Ожидаемая дата: с 2020-04-11 по 2020-04-18 Причина заключается в том, что для большинства панелей мониторинга требуется одна дата, но для некоторых требуются временные ряды. который показывает результат за последние 7 дней.

Вот код, который я готовлю в пользовательском запросе.

    SELECT  distinct(dt) FROM mytable
WHERE 
    dt >= date_add('day', -7, from_iso8601_timestamp('{{ to_dttm.isoformat() }}'))
    AND
    dt <= date_add('day', 0, from_iso8601_timestamp('{{ to_dttm.isoformat() }}'))

это результат json. Он поставил дополнительный запрос ГДЕ, он проходит проход, но показывается только 1 дата.

SELECT distinct(dt)  FROM mytable\n
WHERE dt >= date_add('day', -7, from_iso8601_timestamp('2020-04-18T00:00:00'))\n     
AND dt <= date_add('day', 0, from_iso8601_timestamp('2020-04-18T00:00:00'))) AS \"expr_qry\"\n
WHERE \"dt\" >= from_iso8601_timestamp('2020-04-18T00:00:00')\n  
AND \"dt\" <= from_iso8601_timestamp('2020-04-18T00:00:00')\nLIMIT 1000"

Пожалуйста, сообщите. Большое спасибо

1 Ответ

0 голосов
/ 07 мая 2020

Вы можете написать собственный запрос, используя фильтры Jinja. Вы можете получить значение, выбранное в поле фильтра, используя функцию filter_values().

{% set date_ref = filter_values('my_date')[0] %}

Затем вы можете написать собственный запрос, используя классические функции MySql. В вашем запросе вызовите переменную ниндзя, используя {{}}, например

AND date >= DATE_ADD({{date_ref}}, INTERVAL -7 DAYS)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...