【问题标题】:How to create a temp table in teradata如何在 teradata 中创建临时表
【发布时间】:2014-07-29 16:46:49
【问题描述】:
BEGIN;
CREATE TEMP FACT TABLE new_table  DISTRIBUTE BY hash(a.var3) as
SELECT (YEAR(a.var1) - b.var2), a.var3
FROM d.data1 a, c.data2 b
WHERE (YEAR(var1) - var2) > 40
;

GO
SELECT * FROM age_DRG;
END;

我不确定这段代码有什么问题。我不断收到此错误

"Executed as Single statement.  Failed [34 : HY000] [AsterData][ASTERJDBCDSII](34) NOTICE: current transaction is aborted, queries ignored until end of transaction block () 
Elapsed time = 00:00:00.016 

STATEMENT 1: BEGIN;
CREATE Statement failed. "

【问题讨论】:

  • Aster 中没有 GO,这是 Transact SQL 语法。
  • 我用什么代替 go?
  • 我现在无法测试,但您可以直接删除它。
  • 嗯尝试过,它给了我同样的错误。
  • 然后也删除 BEGIN/END。你真的想在一次交易中完成,为什么?

标签: sql teradata temp teradata-aster


【解决方案1】:
  1. 没有YEAR这个函数,可以用date_trunc('year', somedate)代替
  2. 您不需要使用“FACT”关键字,Aster 会根据分布类型理解它
  3. 没错,Aster 中没有 GO 关键字
  4. 我建议您更精确地使用联接,因为 Aster 旨在计算工作人员端的数据,而且我认为,联接对于 Aster 来说会更“可读”。

【讨论】:

    猜你喜欢
    • 2019-03-13
    • 2019-01-29
    • 2015-04-25
    • 2018-06-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多