2016-10-04 86 views
1

我有以下查询:EXP()BigQuery中返回浮点错误

SELECT EXP(col) FROM `project.dataset.tablename`; 

哪里colFLOAT。但是,我收到此错误:Error: Floating point error in function: EXP

我试过EXP()与虚拟数据,它的工作原理。例如:

SELECT EXP(col) FROM (
    SELECT 1. as col UNION ALL 
    SELECT 2. as col); 

为什么我会得到实际数据的浮点错误,我该如何解决它?我尝试了EXP(CAST(col as FLOAT64))EXP(ROUND(col, n))之类的东西,但我仍然得到相同的错误。

+0

作业ID,以防有人可以调试吗? –

回答

1

运行查询:

SELECT MAX(col) 
FROM project.dataset.tablename; 

它可能然后是显而易见的,为什么你得到溢出错误。你可以解决它通过使用case

SELECT (CASE WHEN col < ?? THEN EXP(col) END) 
FROM project.dataset.tablename; 

我可以建议值,但它可能是从你的应用明显的 - 说的东西比10或100更大的可能只是不合理的。