HIVE 中是否有一项功能可以帮助我从列表中随机选择一个数字。 例如:我想从下面的列表中选择一个随机数
1000
2000
4000
6000
8000
10000
P.S。这些值不存在于表中,我们有6个不同的硬编码变量,我们需要选择其中一个。
答案 0 :(得分:1)
这可以通过构造可能值的数组来完成,并使用RAND()
来选择一个:
SELECT a, b, c, Array(1000, 2000, 6000, 8000, 10000)[Cast((FLOOR(RAND()*6.0)) as INT)]
FROM TABLE;
答案 1 :(得分:0)
SELECT a, b, c,
CASE WHEN nonsense <=1.0 THEN 1000
WHEN nonsense <=2.0 THEN 2000
...
WHEN nonsense <=5.0 THEN 8000
ELSE 10000
END AS more_nonsense
FROM
(SELECT a, b, c, RAND()*6.0 AS nonsense
FROM ...
WHERE ...
) x
“当其他一切都失败时,请考虑阅读文档”:
返回一个随机数(从一行变为另一行) 从0到1均匀分布。