Dbplyr错误:将表达式转换为数据类型int时出现算术溢出错误
我敢肯定已经有人问过类似的问题了。但是,我的问题具体到何时将R会话连接到SQL Server数据库Dbplyr错误:将表达式转换为数据类型int时出现算术溢出错误,r,dbplyr,R,Dbplyr,我敢肯定已经有人问过类似的问题了。但是,我的问题具体到何时将R会话连接到SQL Server数据库 accept<-x%>% group_by(SiteID, MachineID, LocationID) %>% filter(DateTime>="2019-01-1" & DateTime<"2019-12-31") %>% summarise(n=(sum(TenSecCount))) %>% collect()
accept<-x%>%
group_by(SiteID, MachineID, LocationID) %>%
filter(DateTime>="2019-01-1" & DateTime<"2019-12-31") %>%
summarise(n=(sum(TenSecCount))) %>%
collect()
当我尝试将数据收集到数据帧中时,会出现以下错误-
将表达式转换为数据类型int时出现算术溢出错误。
'选择SiteID、MachineID、LocationID、CASTn作为VARCHARMAX作为n
从中选择前100%站点ID、机器ID、位置ID、SumtenseCount AS n
从“选择100%的顶部”*
从顶部选择100%机器ID、OutletID、TenSecCount
对此有何解决方法?当您将数据收集到R中时,会出现此错误,因为只有在收集时才会计算远程SQL表 dbplyr通过返回结果的SQL查询定义远程表。在请求返回结果之前,远程表定义与等待运行的SQL脚本没有太大区别 当您使用collect从该表请求结果时,sql代码将在服务器上执行,结果将返回到R。这意味着您可能有一个无效的远程表定义,并且在执行它之前不知道它。例如: 远程_表% 组\u按站点ID、机器ID、位置ID%>% filterDateTime>=2019-01-1和DateTime% summarsen=sumTenSecCount 没有错误,因为我们所做的只是定义一个sql查询并将其存储在远程表中 查看底层sql查询 显示查询删除表格 如果复制并粘贴此查询,并尝试直接在服务器上运行它,则会出错 试图收集数据 本地_表%collect 评估时出错 在计算sql时,您可以看出错误是由于R向您返回了导致错误的sql代码和sql错误消息而产生的。将表达式转换为数据类型int时出现算术溢出错误。是SQL错误,而不是R错误。请参阅以了解解决此问题的方法 提示,可能类似于: 远程_表% mutateTenSecCount=CASTTenSecCount AS BIGINT%>%其他步骤更改数据类型 组\u按站点ID、机器ID、位置ID%>% filterDateTime>=2019-01-1和DateTime% summarsen=sumTenSecCount 您是否将DateTime作为POSIXct类尝试filterDateTime>=as.Date2019-01-01&DateTime