对R studio代码进行窗口SQL查询
问题: 我想将创建的SQL转换为R studio,在那里将进行2次计算。我可以做一个角色,但我还不懂组合 代码: 选择 f1.ClubName,f1.Percwaarde,f2.Percpunten 从…起 选择 f、 ClubName,sumw.waarde*100.0/sumw.waarde超过PercWaarde 从…起 事实f 参加 w.WDID=f.WDID上的waarde w 分组 f、 俱乐部名称f1 内连接 选择 f、 ClubName,sumu.p*100.0/sumu.p/Perpunten 从…起 事实f 参加 u.StandID上的u=f.StandID 分组 f、 f2上的clubname f2.clubname=f1.clubname 资料 SQL数据已从数据库中检索。但对于R代码,我将使用Excel文件。因此,它可以从数据帧DF中检索 这是我的代码: df%>% 组别按组别%>% SummaryTot=sumWaarde%>% 变速箱,Perc=tot/sumtot*100对R studio代码进行窗口SQL查询,sql,r,tidyverse,Sql,R,Tidyverse,问题: 我想将创建的SQL转换为R studio,在那里将进行2次计算。我可以做一个角色,但我还不懂组合 代码: 选择 f1.ClubName,f1.Percwaarde,f2.Percpunten 从…起 选择 f、 ClubName,sumw.waarde*100.0/sumw.waarde超过PercWaarde 从…起 事实f 参加 w.WDID=f.WDID上的waarde w 分组 f、 俱乐部名称f1 内连接 选择 f、 ClubName,sumu.p*100.0/sumu.p/P
这里最简单的解决方案是通过DBI包加载表。这样,您就可以保持SQL代码的完整性,而不必使用dplyr重新创建它
library(DBI)
driver <- dbDriver("[your driver]")
con <- dbConnect(driver, host = '[your host]', port = '[your port]', user = '[your user]', password = '[your password]', dbname = '[your dbname]')
df <- dbGetQuery(con, paste0(
'select
f1.ClubName, f1.Percwaarde, f2.Percpunten
from
(select
f.ClubName, sum(w.waarde) * 100.0 / sum(sum(w.waarde)) over() PercWaarde
from
fact f
join
waarde w on w.WDID = f.WDID
group by
f.clubname) f1
inner join
(select
f.ClubName, sum(u.p) * 100.0 / sum(sum(u.p)) over() Percpunten
from
fact f
join
uitslag u on u.StandID = f.StandID
group by
f.clubname) f2 on f2.ClubName = f1.ClubName
'))
这里最简单的解决方案是通过DBI包加载表。这样,您就可以保持SQL代码的完整性,而不必使用dplyr重新创建它
library(DBI)
driver <- dbDriver("[your driver]")
con <- dbConnect(driver, host = '[your host]', port = '[your port]', user = '[your user]', password = '[your password]', dbname = '[your dbname]')
df <- dbGetQuery(con, paste0(
'select
f1.ClubName, f1.Percwaarde, f2.Percpunten
from
(select
f.ClubName, sum(w.waarde) * 100.0 / sum(sum(w.waarde)) over() PercWaarde
from
fact f
join
waarde w on w.WDID = f.WDID
group by
f.clubname) f1
inner join
(select
f.ClubName, sum(u.p) * 100.0 / sum(sum(u.p)) over() Percpunten
from
fact f
join
uitslag u on u.StandID = f.StandID
group by
f.clubname) f2 on f2.ClubName = f1.ClubName
'))