我有一个相当长且复杂的查询,我用它作为进行一些分析的起点。我已经使用 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/