sql-rand()随机函数使用方法介绍

1、随机取数
MySql或Hive数据库,从样本数据中随机提取数据表中的N条记录,可以使用rand()函数,结合使用order by对数据排序,用limit N取topN

select * from TableName order by rand() limit N

案例:每月信用卡支出总额超过1000美元的客户有机会赢得抽奖。假设您在2019年10月从所有符合条件的客户中随机选择100名幸运客户,您是否可以编写一个查询以返回“user_id”列表作为此次抽奖的结果?

--Task 1. Lucky Draw
select 
user_id,
substr(create_time, 1, 7)  month,
sum(amount) amount_sum
from card_exp 
where substr(create_time, 1, 7) = ’2019-10’ 
group by user_id, substr(create_time, 1, 7)
having amount_sum > 1000
order by rand()
limit 100

2、生成随机数
随机数函数: rand()
语法: rand(),rand(int seed)
返回值: double
说明:返回值是一个0到1范围内的随机数。如果指定种子seed,则会等到一个不变的随机数

--不指定种子
hive> select rand() from tabel_name;
0.5577432776034763

hive> select rand() from tabel_name;
0.6638336467363424

--指定随机数种子为1
hive> select rand(1) from tabel_name;
0.7220096548596434

hive> select rand(1) from tabel_name;
0.7220096548596434
上一篇:C++中产生概率分布之-均匀分布和标准正态分布


下一篇:c语言生成随机数