请告诉我如何消除这个错误。
这是我的代码:
%%sql
DROP TABLE IF EXISTS ages;
CREATE TABLE ages AS
SELECT CODEDESC, SUM(age) AS age FROM
(SELECT CODEDESC, (CASE WHEN (JULIANDAY(MAX(inspdate))-JULIANDAY(MIN(inspdate)))< 30 THEN 30
ELSE (JULIANDAY(MAX(inspdate))-JULIANDAY(MIN(inspdate)))
END)AS age FROM filtered_webextract
INNER JOIN cuisine
ON filtered_webextract.CUISINECODE = cuisine.CUISINECODE
GROUP BY CODEDESC, camis) as foo
GROUP BY CODEDESC;以下是错误:
* postgresql://docker:***@nycinspection.tditrain.com:5433/NYCinspection
Done.
(psycopg2.errors.UndefinedFunction) function julianday(timestamp without time zone) does not exist
LINE 3: (SELECT CODEDESC, (CASE WHEN (JULIANDAY(MAX(inspdate))-JULI...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
[SQL: CREATE TABLE ages AS
SELECT CODEDESC, SUM(age) AS age FROM
(SELECT CODEDESC, (CASE WHEN (JULIANDAY(MAX(inspdate))-JULIANDAY(MIN(inspdate)))< 30 THEN 30
ELSE (JULIANDAY(MAX(inspdate))-JULIANDAY(MIN(inspdate)))
END)AS age FROM filtered_webextract
INNER JOIN cuisine
ON filtered_webextract.CUISINECODE = cuisine.CUISINECODE
GROUP BY CODEDESC, camis) as foo
GROUP BY CODEDESC;]
(Background on this error at: http://sqlalche.me/e/13/f405)请告诉我如何更改代码。提前感谢
发布于 2022-10-12 19:14:38
发生此错误是因为postgresql中没有用户定义或内置函数调用JULIANDAY。因此,将JULIANDAY(timestamp)替换为extract(julian from 'timestamp').Then,它将工作。
发布于 2022-10-12 19:17:53
尝试MAX(JULIANDAY(inspdate)) - MIN(JULIANDAY(inspdate)) < 30或MAX(JULIANDAY(inspdate)) - MIN(JULIANDAY(inspdate)) < INTERVAL '30 days',甚至使用DATE_PART('day', end - start)
UPD:假设JULIANDAY()是您的自定义函数
https://stackoverflow.com/questions/74046852
复制相似问题