Data studio 连接器返回错误,我不明白。 我已经用相同的标量子查询创建了另一个 SQL 连接器,但使用了另一个源,并且它工作正常。 我不明白有什么区别,但如果我从主查询执行该子查询,它就可以工作。我测试了所有变薄的东西很多次。所以我相信我需要帮助
DECLARE product_selected STRING;
SET product_selected = (
with total_product_selected as (
with total_product as (
SELECT
CASE
WHEN ... THEN ...
WHEN ... THEN ...
ELSE 'hostname'
END AS hostname,
array_to_string(array_agg(distinct ifnull(session_product_type, 'null')), '|') as session_product_type
FROM table
group by hostname
)
SELECT session_product_type FROM total_product
WHERE hostname != 'hostname'
AND REGEXP_CONTAINS(hostname, @dssite)
)
SELECT session_product_type FROM total_product_selected
group by session_product_type);
SELECT *
FROM table
WHERE
REGEXP_CONTAINS(hostname, @dshostname)
AND
REGEXP_CONTAINS(session_product_type , product_selected) = True
AND event_date between PARSE_DATE('%Y%m%d', @DS_START_DATE) and PARSE_DATE('%Y%m%d', @DS_END_DATE)
我也试过,而不是单独拿出 product_selected 只是放在 REGEXP_CONTAINS 中 ()。
我设法在标准 sql 中获得了所有需要的信息,但在 DS 中我得到了一个错误,比如 ' 抱歉,我们遇到错误,无法完成您的请求。
错误编号:2bd4a150 '
所有这些都需要在正则表达式 where 子句中获取像 'case|case' 这样的字符串
你不需要两次引用“with”
WITH total_product
AS (
SELECT CASE
WHEN...
THEN...
WHEN...
THEN...
ELSE 'hostname'
END AS hostname
, array_to_string(array_agg(DISTINCT ifnull(session_product_type, 'null')), '|') AS session_product_type
FROM TABLE
GROUP BY hostname
)
, total_product_selected
AS (
SELECT session_product_type
FROM total_product
WHERE hostname != 'hostname'
AND REGEXP_CONTAINS(hostname, @dssite)
)
SELECT session_product_type
FROM total_product_selected
GROUP BY session_product_type;
一旦你运行了最后的查询,你就不能继续引用那些 CTE,所以我猜下面只是一个与 CTE 无关的不同查询:
SELECT *
FROM TABLE
WHERE REGEXP_CONTAINS(hostname, @dshostname)
AND REGEXP_CONTAINS(session_product_type, product_selected) = True
AND event_date BETWEEN PARSE_DATE('%Y%m%d', @DS_START_DATE) AND PARSE_DATE('%Y%m%d', @DS_END_DATE)