错误2616在进行计数(*)时计算期间出现数值溢出

use*_*262 5 sql teradata

我正在尝试select count(*)从表中进行从表的操作,由于此错误,我无法执行此操作。我不知道表中的行数。

除此以外,我没有在查询中进行任何其他聚合。

我想这与计数值有关,该计数值太大而无法存储在INTEGER中。

有什么选择?

dno*_*eth 6

当您的会话在Teradata模式下运行时,正如您已经注意到的,COUNT的结果为INTEGER(在ANSI模式下,它将是一个至少15位的DECIMAL)。

解决方法很简单,将其强制转换为bigint:

SELECT CAST(COUNT(*) AS BIGINT)...
Run Code Online (Sandbox Code Playgroud)