Apache Phoenix选择随机记录

时间:2018-01-06 00:16:00

标签: phoenix

有没有办法编写一个从表中选择随机行的查询?

SELECT * FROM Foo ORDER BY RAND() LIMIT 1;始终返回表格中的第一条记录。

此外,如果我写SELECT RAND() FROM Foo LIMIT 1,它总是显示一个随机值,但它是< 1 例如:

SELECT RAND() FROM Foo LIMIT 1

result 1: 0.5425
result 2:  0.34759
result 3: 0.65478

函数explanation已经说它返回0.0到1.0之间但是是否可以编写一个显示表中随机行的查询? /

1 个答案:

答案 0 :(得分:0)

前提是您的id列是自动增量整数

从Foo中选择*,其中id = floor(rand()* num_cols + 0.5)

更通用的答案是在外部构建查询并随机生成外部整数。这是因为phoenix的查询解析器不允许限制/偏移中的函数。因此,生成一个随机数并将其插入偏移量

从Foo中选择*,其中limit = 1 offset =?