【发布时间】:2021-09-30 04:33:48
【问题描述】:
我正在尝试使用我在 BQ 数据集中创建的用户定义函数。
这里是 UDF:
CREATE OR REPLACE FUNCTION `project.dataset.CountHolidays`(START_DATE DATETIME,
SLA INT64, OPERATION STRING) AS (
(
SELECT
SUM(CASE WHEN OPERATION = 'OPTION 1' THEN OPTION_1
WHEN OPERATION = 'OPTION 2' THEN OPTION_2
WHEN OPERATION = 'OPTION 3' THEN OPTION_3
WHEN OPERATION = 'OPTION 4' THEN OPTION_4
WHEN OPERATION = 'OPTION 5' THEN OPTION_5
WHEN OPERATION = 'OPTION 6' THEN OPTION_6
END)
FROM
`project.dataset.calendar` cal
WHERE
cal.CALENDAR_DATE BETWEEN START_DATE AND DATE_ADD(START_DATE, INTERVAL SLA DAY)
)
);
我正在尝试在这样的查询中调用 UDF:
SELECT
ORDER_NUMBER,
`project.dataset.CountHolidays`(DATE(PICK_RELEASE_DATE), EBS_SERVICE_DAYS, WAREHOUSE_ID) as CountHolidays
FROM `different_project.different_dataset.view_name`
我收到以下错误,无法运行查询:
LEFT OUTER JOIN cannot be used without a condition that is an equality of fields from both sides of the join.
有人知道这里的错误是什么吗?几个小时以来一直在挠头。谢谢。
【问题讨论】:
标签: sql google-bigquery user-defined-functions