| run_pipeline_dbi {condusco} | R Documentation | 
A wrapper for running pipelines with a DBI connection invocation query
Description
A wrapper for running pipelines with a DBI connection invocation query
Usage
run_pipeline_dbi(pipeline, query, con, ...)
Arguments
| pipeline | User-provided function with one argument, one row of query results | 
| query | A query to execute via the DBI connection | 
| con | The DBI connection | 
| ... | Additional arguments passed to dbSendQuery() and dbFetch() | 
Examples
## Not run: 
library(whisker)
library(RSQLite)
con <- dbConnect(RSQLite::SQLite(), ":memory:")
dbWriteTable(con, "mtcars", mtcars)
#for each cylinder count, count the number of top 5 hps it has
pipeline <- function(params){
  query <- "SELECT
    {{#list}}
    SUM(CASE WHEN hp='{{val}}' THEN 1 ELSE 0 END )as n_hp_{{val}},
  {{/list}}
    cyl
    FROM mtcars
    GROUP BY cyl
  ;"
  dbGetQuery(
    con,
    whisker.render(query,params)
  )
}
#pass the top 5 most common hps as val params
run_pipeline_dbi(
  pipeline,
  '
  SELECT "[" || GROUP_CONCAT("{ ""val"": """ || hp ||  """ }") || "]" AS list
  FROM (
    SELECT
      CAST(hp as INTEGER) as HP,
      count(hp) as cnt
    FROM mtcars
    GROUP BY hp
    ORDER BY cnt DESC
    LIMIT 5
  )
  ',
  con
)
dbDisconnect(con)
## End(Not run)
[Package condusco version 0.1.0 Index]