Description Usage Arguments Examples
A wrapper for running pipelines with a DBI connection invocation query
1 | run_pipeline_dbi(pipeline, query, con, ...)
|
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() |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | ## 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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.