Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dbplyr错误:将表达式转换为数据类型int时出现算术溢出错误_R_Dbplyr - Fatal编程技术网

Dbplyr错误:将表达式转换为数据类型int时出现算术溢出错误

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()

我敢肯定已经有人问过类似的问题了。但是,我的问题具体到何时将R会话连接到SQL Server数据库

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