在sqlite中生成多个随机数
我想在 Sqlite 中生成 N 组随机数。
现在我得到的最好的办法就是像这样联合一组对 random() 的调用
create view random_view as
select random()
union select random()
union select random()
union select random()
union select random()
;
也许有人有一个更聪明的解决方案可以生成 N 个数字?
I'd like to generate size N set of random numbers in Sqlite.
Right now the best I've got is to union a set of calls to random()
like this
create view random_view as
select random()
union select random()
union select random()
union select random()
union select random()
;
Maybe someone has a more clever solution that could generate N numbers?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
没试过,但也许这个?给定至少包含 N 行的任何表,
将
?
替换为 N。Didn't try, but maybe this? Given any table of at least N rows,
replacing
?
with N.如果您需要数百万行并且有 shell/bash,这样可能就足够了:
echo -e '.import "/dev/stdin" mytable\n';睡眠 0.5 ;对于 {1..10000000} 中的 i;执行 echo $RANDOM;完成)| sqlite3 my.db
睡眠步骤对于防止 sqlite 由于缓冲而将第一个数字读取为 SQL 命令至关重要。青年MMV
If you need millions of rows and have shell/bash, it might be good enough this way:
echo -e '.import "/dev/stdin" mytable\n'; sleep 0.5 ; for i in {1..10000000}; do echo $RANDOM; done) | sqlite3 my.db
The sleep step is critical to prevent sqlite from reading the first numbers as SQL commands due to buffering. YMMV
您可以使用递归查询。
此查询生成一个包含 1000 个随机数的表:
You can use a recursive query.
This query generates a table with 1000 random numbers:
使用 generate_series() 表函数。文档显示了这个生成 20 个随机整数值的示例:
Use the generate_series() table function. The docs show this example which generates 20 random integer values: