【发布时间】:2021-03-01 09:27:45
【问题描述】:
我试图将查询结果放入变量中,但它不起作用。
我不确定该怎么做,所以它按预期返回 0。有任何想法吗?我正在使用 dbt 和 jinja。
使用以下代码,results_list 变量为 (Decimal('0'),))
宏
{% macro source_freshness(model, column_name) %}
{% set freshness_query %}
SELECT COUNT 0 AS count
{% endset %}
{% set results = run_query(freshness_query) %}
{% if execute %}
{% set results_list = results.columns[0].values() %}
{% else %}
{% set results_list = [] %}
{% endif %}
{{ return(results_list) }}
{% endmacro %}
调用模型:
{% set freshness_query_test = source_freshness(ref('model'),'date') %}
{% if count in freshness_query_test == 0 %}
do this
{% else %}
do that
{% endif %}
谢谢!
【问题讨论】:
-
非常感谢。我一直在以不同的方式尝试这两种选择,但似乎不起作用。调用语句有效,但问题是我正在使用一个带有 CTE 查询的宏。我尝试在调用语句中添加整个查询,但它不起作用。我以为是一样的,但我错了,所以我更新了问题。谢谢。
-
您的宏
{% macro source_freshness(model, column_name) %} {% set freshness_query %} SELECT COUNT 0 AS count {% endset %}中似乎缺少{% set freshness_query %} -
哎哟!我想我在将查询更改为发布时错过了它。我已经找到了一种方法来做到这一点。看答案。谢谢:)