sql - 从 dbplyr 中给定的 SQL 查询开始使用 dbplyr

标签 sql r dplyr dbplyr

我有一个相当长且复杂的查询,我用它作为进行一些分析的起点。我已经使用 dbplyr 从头开始​​复制了该操作,因此我可以使用 dplyr 动词,而无需将数据库放入内存。如何在不必使用 dbplyr 复制起始查询的情况下实现此目的?

最佳答案

看看this回答。它显式设置 dbplyr 表的 SQL 查询。您可以使用相同的想法:

# read file containing existing query
start_query = your_favorite_way_to_read_file_here(file_name)

# create connection
con = DBI::dbConnect(...)

# initial table
my_table = tbl(con, sql(start_query))

要验证它是否按预期工作,请尝试 show_query(my_table)head(my_table)

请注意,dbplyr 不会将 dplyr 转换为高度优化的查询。因此,如果您的初始查询复杂/运行缓慢,通过 dbplyr 添加进一步的操作可能会表现不佳。在这种情况下,最好将复杂查询写入另一个表。

关于sql - 从 dbplyr 中给定的 SQL 查询开始使用 dbplyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64896110/

相关文章:

r - 将分隔的字符串拆分为多列并将它们分成行

java - SQLite 复合键错误

r - 除了names_from和values_from之外,pivot_wider是否还需要任何其他信息

r - 使用条件均值和 NA 生成新变量

r - 如何在 R 包函数中使用非 ASCII 符号(例如 £)?

r - 对于每一行,如果/当首先满足条件时获取列号

r - 在 R 中扩展电子邮件数据集的标题

mysql - 创建涉及两个表的 SQL 查询,其中一个表只需要一个值

mysql - 为什么我不能在我的 MySQL 数据库中保存长文本?

sql - Oracle 错误代码 ORA-00913 - IN CLAUSE 限制超过 65000 个值(每 1k 值使用 OR 条件)