如何解决无法将R脚本复制到SQL查询
我正在尝试将r脚本复制到SQL查询。但是,我无法达到相同的结果。问题是要获得SQL中日期的总和,这不可能像r脚本那样简单。
R逻辑:
R中使用的逻辑是获取相同日期的总和,并且通过说该值不必为nan来进行过滤。而且1L使输出列成为整数字段。
Oracle中的错误:
SQL Error [30100] [HY000]: Invalid aggregate function 'sum(Enl)': Invalid parameter types of function 'sum(Enl)'
R脚本
subjData<- data.frame(
`Enl` = as.Date(c("2020-01-01","2020-01-01","2020-01-04","2020-01-05")),check.names = F
)
actual.enrollment <- function() {
if (any(!is.na(subjData$`Enrl`))) {
e0 <- aggregate(1L * !is.na(subjData$`Enl`),by = list(subjData$`Enl`),FUN = sum)
colnames(e0) <- c("Date","Enld")
} else {
e0 <- data.frame(
Date = no.dates,`Enld` = no.numbers,check.names = F
)
}
e0
}
output:
Date Enld
1 2020-01-01 2
2 2020-01-03 1
3 2020-01-04 1
4 2020-01-05 1
尝试了SQL查询:
SELECT Enl,SUM (Enl) as Enld
FROM subjData
GROUP BY Enl;
解决方法
数据库抱怨您无法汇总日期。看来您想要count()
代替:
select enl,count(*) as enld
from subjdata
group by enl;
我不清楚带有null
值的逻辑应该是什么。如果要过滤出null
日期,请使用where
子句:
select enl,count(*) as enld
from subjdata
where enl is not null
group by enl;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。