【问题标题】:Purpose of dbplyr::collapse functiondbplyr::collapse 函数的目的
【发布时间】:2022-12-03 13:56:44
【问题描述】:

我不明白什么时候/为什么有人会使用 dbplyr::collapse 函数。

我知道它会创建一个子查询,但这在什么时候/什么时候会有用?

R 文档没有提供任何真正的清晰度或示例。

【问题讨论】:

标签: r dplyr dbplyr


【解决方案1】:

我认为 dbplyr::collpase() 强制为子查询呈现中间 SQL 查询。

这是一个例子:

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-02 reprex v2.0.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多