如何解决数据库 (Teradata) 中没有更多的假脱机空间
我是 SQL 初学者,我对 Teradata 的一个查询有问题。当我运行它时,我收到此错误:
“数据库中没有更多的假脱机空间”。
根据我在互联网上的研究,问题可能来自于我的查询没有得到足够的优化,除了我不知道如何简化它。 你能帮我吗?
查询错误来自哪里:
INSERT INTO DESTINATION_TABLE
(YEAR,QUARTER,LABEL,NUMBER,TIMESTAMP)
VALUES
((SELECT YEAR FROM DATE TABLE),(SELECT QUARTER DATE TABLE),'ANY LABEL',(SELECT COUNT(*)
FROM DATE_TABLE AS TMP
FULL OUTER JOIN TABLE_1 AS T1 ON TMP.PRG_DT = T1.INN_DT
FULL OUTER JOIN TABLE_2 AS T2 ON TMP.PRG_DT = T2.INN_DT
INNER JOIN TABLE_3 AS T3 ON TMP.PRG_DT = T3.INN_DT),CURRENT_TIMESTAMP);
查询应该做什么:
Year processed = year of DATE_TABLE
Quarter processed = quarter of DATE_TABLE
Label = ‘ANY LABEL’
Number = sum of the number of occurrences of TABLE_1 + number of occurrences of TABLE_2 + number of occurrences of TABLE_3 having for INN_DT the PRG_DT of DATE_TABLE
Timestamp = Current timestamp
解决方法
第三个组件不需要 full join
!
相反,您似乎想要使用 INSERT . . . SELECT
的逻辑:
INSERT INTO DESTINATION_TABLE (YEAR,QUARTER,LABEL,NUMBER,TIMESTAMP)
SELECT YEAR,'ANY LABEL',( (SELECT COUNT(*)
FROM table1 t1
WHERE dt.PRG_DT = t1.INN_DT
) +
(SELECT COUNT(*)
FROM table2 t2
WHERE dt.PRG_DT = t2.INN_DT
)
),CURRENT_TIMESTAMP
FROM DATE_TABLE dt;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。