使用带有 dbplyr 的 sample_n() 随机抽样数据库

randomly sample a database using sample_n() with dbplyr

是否可以使用 dplyr::sample_n() 之类的函数从数据库中 select 随机(或伪随机)子集,但在 dbplyr 或另一个运行 SQL 查询?

目的是在 运行 从数据库中提取耗时的数据之前测试小批量查询。

这似乎适用于我们的 MySQL 服务器:

dbGetQuery(con, 
"SELECT * 
FROM data_table_name 
ORDER BY RAND() 
LIMIT 500;")

对于 SQLite,你可以试试这个:

DBI::dbGetQuery(con, "SELECT * FROM table ORDER BY RANDOM() LIMIT 1;")