R中用sql语句求和,显示为0

根据type,operation,k_symbol对amount分组求和以及求平均,amount列存在空值(不知道是不是这个原因导致结果显示全部为0),代码如下

```result_1_1=sqldf("select type,operation,k_symbol,

  • count(*) as count_id,
  • sum(amount) as sum_of_amount,
  • avg(amount) as avg_of_amount from trans group by type,operation,k_symbol")
![图片说明](https://img-ask.csdn.net/upload/201905/14/1557823867_723229.jpg)

考虑会不会是空值的原因,于是修改代码,将空值赋值为0,代码如下:

result_1_1<-sqldf("select type,operation,k_symbol,

  • count(*) as count_id,
  • sum(ifnull(amount,0)) as sum_of_amount,
  • avg(ifnull(amount,0)) as avg_of_amount from trans group by type,operation,k_symbol") ``` 但是结果和上图一样,希望大神能帮忙解答一下,感激不尽

根据问题描述,可以确定不是空值导致结果显示为0的问题。可能的原因是在使用ifnull函数时没有将其连接符号设置为"+"。因此,您可以尝试修改代码如下:

result_1_1 <- sqldf("select type, operation, k_symbol,
                     count(*) as count_id,
                     sum(ifnull(amount, 0)) as sum_of_amount,
                     avg(ifnull(amount, 0)) as avg_of_amount 
                     from trans 
                     group by type, operation, k_symbol")

在此基础上,如果仍然不能解决问题,可以尝试检查一下数据是否在sql语句处理之前就已经被正确地清洗和处理好了。