标签: teradata

总和上的奇数行为(获取数字溢出)

我正在使用SAS proc sql查询并发现了一些奇怪的东西.首先,我尝试了这个简单的查询:

proc sql;
  CREATE TABLE test AS 
    (SELECT
       YEAR(dt) AS yr,
       MONTH(dt) AS mo,
       SUM(val) AS total
     FROM
       mydb1234.myTable
     WHERE
       myDate BETWEEN x AND y
     GROUP BY
       yr, mo);
run;
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时,我收到此错误:

ERROR: Teradata row not delivered (trget): Numeric overflow occurred during computation.
Run Code Online (Sandbox Code Playgroud)

据我所知,当我的求和值太大而无法适应proc sql试图使用的数据类型时,会发生这种情况.

我决定将我总结的数字除以:

SUM(val/1000) AS total
Run Code Online (Sandbox Code Playgroud)

但是,这会产生意想不到的后果.总和小于我在Excel中所做的手动总和.随着我向除数增加更多的数量级,总数会降低.我猜这是消除它试图求和的较小值(例如10/1000 vs 108/10000等),它们永远不会达到总和,而是被读作零.

有没有办法强制这个proc sql使用可以容纳我的总值的字段长度创建一个表?它们的数量在十亿 - 千亿之间,所以我认为这并不奇怪.我很想知道你们的想法.

sas teradata

5
推荐指数
2
解决办法
2080
查看次数

连接Java和Teradata:UserId,密码或帐户无效

我一直试图连接到Teradata

Class.forName("com.teradata.jdbc.TeraDriver");
        String connectionString = "jdbc:teradata://xxx.xxxxxx.com/database=xxxxxx,  tmode=ANSI,  charset=UTF8";
        String user = "Rocket512";
        String password = "aui8mn5";
        Connection conn = DriverManager.getConnection(connectionString, user, password);
Run Code Online (Sandbox Code Playgroud)

得到以下

  Exception in thread "main" com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] 
[TeraJDBC 14.10.00.17] [Error 8017] [SQLState 28000] The UserId, Password or Account is invalid.
        at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException(ErrorFactory.java:300)
        at com.teradata.jdbc.jdbc.GenericLogonController.run(GenericLogonController.java:666)
        at com.teradata.jdbc.jdbc_4.TDSession.<init>(TDSession.java:216)
Run Code Online (Sandbox Code Playgroud)

我知道主机是正确指定的,因为我没有得到UnknownHost Exception. 另外我已经仔细检查了我的用户名和密码是否正确.


我运行@ beni23建议的查询(谢谢)

select * 
from dbc.logonoff 
where logdate >= date '2013-10-31'
Run Code Online (Sandbox Code Playgroud)

这是我得到的结果

在此输入图像描述

什么是Bad Password?我使用SQL Assistant使用这个密码,效果很好.为什么我不能用Java连接?

java teradata

5
推荐指数
2
解决办法
2万
查看次数

sql:喜欢任何vs像所有

我无法弄清楚为什么有时LIKE需要ANY,有时候需要ALL,这让我很疯狂.我觉得我应该能够在两种情况下都使用ANY(我试图在括号中的任何正则表达式之后选择记录).

出于某种原因,第一个LIKE,有任何一个,工作得很好 - 它返回所有记录与狗食,谱系或beneful.

然而,第二个LIKE需要ALL.否则它不会遗漏带有零食,供应或潮湿的记录.但为什么?我觉得这里的任何形式都是合适的形式.

where dsc_item like any ('%DOG CHOW%','%PEDIGREE%','%BENEFUL%')
and dsc_comm not like all ('%TREATS%','%SUPPLIES%', '%WET%')
Run Code Online (Sandbox Code Playgroud)

sql teradata

5
推荐指数
1
解决办法
2万
查看次数

如何删除Teradata表中不在另一个表中的行?

让我的情况变得棘手的是我没有一个列密钥,只有一个简单的主键列表要删除(例如,"从表中删除键入([list])").我有多个列作为主键,并且需要加入所有列.

使用我所知道的其他数据库,我认为可以这样做:

DELETE FROM
    table1 t1
  LEFT OUTER JOIN
      table2 t2
    ON
      t2.key1 = t1.key1 AND
      t2.key2 = t1.key2
  WHERE
    t2.key1 IS NULL;
Run Code Online (Sandbox Code Playgroud)

但Teradata(v12)以错误号3706响应,说"语法错误:FROM子句中不允许加入表".

sql teradata

4
推荐指数
1
解决办法
3万
查看次数

使用JDBC连接R和Teradata

我正在尝试使用RJDBC连接R和Teradata.

我发现这个链接有一个使用mysql的例子,但我不知道如何用teradata做同样的事情.

library(RJDBC)
drv <- JDBC("com.mysql.jdbc.Driver",
           "/etc/jdbc/mysql-connector-java-3.1.14-bin.jar",
           identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/test", "user", "pwd")
Run Code Online (Sandbox Code Playgroud)

我已经下载了这个驱动程序:http: //downloads.teradata.com/download/connectivity/jdbc-driver 但是我不确定我应该在哪里引用该目录.

我知道有一个teradataR包在那里,但我不知道它是否真的使用R 3.0.0工作.

目前我只是将数据从数据库中拉出来很有意思.简单的事情SELECT * FROM table.问题是RODBC很慢......

还有其他选择来完成这项任务吗?

r teradata rodbc rjdbc

4
推荐指数
1
解决办法
5813
查看次数

资格与拥有之间的区别

有人可以解释一下,Teradata qualify...over...partition bygroup by...havingTeradata有什么区别?
我还想知道他们的表现是否有任何差异.

teradata

4
推荐指数
1
解决办法
9628
查看次数

Teradata 中的用户、数据库和架构如何关联?

我知道甲骨文。在 Oracle 模式或用户中或多或少是相同的。当我们创建用户时,就会创建架构。

数据库是我们安装oracle时创建的东西。

我是 Teradata 的新手。Teradata 的情况也一样吗?

Teradata 中的用户数据库架构如何关联?

database rdbms teradata

4
推荐指数
1
解决办法
9487
查看次数

如何从 Hive 表获取lastaltertimestamp?

Teradata 有 的概念lastaltertimestamp,这是最后一次alter table在表上执行命令的时间。lastaltertimestamp可以查询。Hive有类似的值可以查询吗?

返回的时间戳hdfs dfs -ls /my/hive/file不反映alter table命令,因此alter table不得修改支持 Hive 文件的文件。describe formatted也不提供最后更改时间戳。谢谢

hadoop hive alter-table teradata

4
推荐指数
1
解决办法
1万
查看次数

Teradata 查询中的领先和滞后 - 对于类别

我正在编写一个查询以从数据转储中获取 SCD 2 类型的数据。我的数据和代码如下:

create table promotions 
(
start_date date,
end_date date,
promotion_name varchar(50));
Run Code Online (Sandbox Code Playgroud)

插入语句来填充表:

insert into promotions values ('9/1/2017','9/2/2017','P1');
insert into promotions values ('9/2/2017','9/3/2017','P1');
insert into promotions values ('9/3/2017','9/4/2017','P1');
insert into promotions values ('9/4/2017','9/5/2017','P1');
insert into promotions values ('9/5/2017','9/6/2017','P2');
insert into promotions values ('9/6/2017','9/7/2017','P2');
insert into promotions values ('9/7/2017','9/8/2017','P2');
insert into promotions values ('9/8/2017','9/9/2017','P2');
insert into promotions values ('9/9/2017','9/10/2017','P2');
insert into promotions values ('9/10/2017','9/11/2017','P2');
insert into promotions values ('9/11/2017','9/12/2017','P3');
insert into promotions values ('9/12/2017','9/13/2017','P3');
insert into promotions values ('9/13/2017','9/14/2017','P3'); …
Run Code Online (Sandbox Code Playgroud)

teradata

4
推荐指数
1
解决办法
6239
查看次数

为什么 WHERE 子句从结果中删除空值?

我有一个要从中过滤数据的表。我尝试了以下查询

SELECT 
SIS, COUNT(*)
FROM DL_SQ_DEV_INT.SMRY_DAILY_TRAILER_REPORT
GROUP BY 1;

Result:
BL,17386
EQ,3242
FIFO,5747
GR,15655
HOLD,13035
LT BL,20566
LT GR,14615
LT OR,14190
LT PU,13877
LT YE,13683
null,223376
OR,15727
PI,3563
PU,16105
RW,200
TA,6
tbd,25302
WH,1945
YE,14510
Run Code Online (Sandbox Code Playgroud)

现在,当我在其中添加 WHERE 子句时,它会过滤掉空值。查询是不等于 (<>)。如何避免这种情况并且结果中仍然存在空值?将 null 更改为空白或空格?

SELECT 
SIS, COUNT(*)
FROM DL_SQ_DEV_INT.SMRY_DAILY_TRAILER_REPORT
WHERE UPPER(TRIM(SIS)) <> 'EQ'
GROUP BY 1;

Result:
BL,17386
FIFO,5747
GR,15655
HOLD,13035
LT BL,20566
LT GR,14615
LT OR,14190
LT PU,13877
LT YE,13683
OR,15727
PI,3563
PU,16105
RW,200
TA,6
tbd,25302
WH,1945
YE,14510
Run Code Online (Sandbox Code Playgroud)

sql teradata teradatasql

4
推荐指数
1
解决办法
2358
查看次数

标签 统计

teradata ×10

sql ×3

alter-table ×1

database ×1

hadoop ×1

hive ×1

java ×1

r ×1

rdbms ×1

rjdbc ×1

rodbc ×1

sas ×1

teradatasql ×1