【问题标题】:Making a WIndow SQL query to a R studio code对 R studio 代码进行 WINdow SQL 查询
【发布时间】:2020-11-12 15:27:49
【问题描述】:

问题

我想将创建的 SQL 转换为将进行 2 次计算的 R 工作室。我可以做一个部分,但我还不明白组合。

代码:

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

数据

已从数据库中检索到 SQL 数据。但是对于 R 代码,我将使用 Excel 文件。因此可以从数据框 DF 中检索。

这是我的代码:

df %>% 
  group_by(Team) %>% 
  summarize(tot = sum(Waarde)) %>% 
  transmute(Team, Perc = tot/sum(tot) *100)

【问题讨论】:

    标签: sql r tidyverse


    【解决方案1】:

    这里最简单的解决方案是通过 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
        '))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      相关资源
      最近更新 更多