我不明白什么时候/为什么有人会使用dbplyr::collapse函数。我知道它会创建一个子查询,但这在何处/何时是有益的?R文档没有提供任何真实的的清晰度或示例。
dbplyr::collapse
j1dl9f461#
我认为dbplyr::collapse()会强制子查询呈现中间SQL查询。下面是一个示例:
dbplyr::collapse()
library(dplyr) library(dbplyr) db <- memdb_frame(a = c(3, 4, 1, 2), b = c(5, 1, 2, NA)) # No subquery db %>% mutate(a = 2 * b) %>% # collapse() %>% arrange(a) %>% show_query() #> <SQL> #> SELECT 2.0 * `b` AS `a`, `b` #> FROM `dbplyr_001` #> ORDER BY `a` # Intermediate sql used as subquery db %>% mutate(a = 2 * b) %>% collapse() %>% arrange(a) %>% show_query() #> <SQL> #> SELECT * #> FROM ( #> SELECT 2.0 * `b` AS `a`, `b` #> FROM `dbplyr_001` #> ) #> ORDER BY `a`
创建于2022年12月2日,使用reprex v2.0.2
1条答案
按热度按时间j1dl9f461#
我认为
dbplyr::collapse()
会强制子查询呈现中间SQL查询。下面是一个示例:
创建于2022年12月2日,使用reprex v2.0.2