目录

AaronJny

诗酒繁华,书剑天涯。

标签: sql (1)

使用阿里云maxcompute sql随机从查询数据中抽取n条样本

近些年大数据发展迅速,大数据生态圈也越来越丰富。使用 sql 进行数据分析时有个常用的组件叫 HIVE ,而阿里云则提供了类似 HIVE 功能的商业云服务,称为 maxcompute 。 今天记录一下使用 maxcompute sql 从数据中随机抽取 n 条样本的方法。 假设有数据如下: id name 1 张三 2 李四 3 王五 4 龙傲天 5 刘斩仙 6 赵日天 我们想随机从上表中抽取 3 条数据,应该怎么写? 假设表名为tmp_table: select id,name from tmp_table order by rand() limit 3 这样就能够从表中随机抽取 3 条数据了。假设我们运行的结果如下: 1 张三 3 王五 4 龙傲天 你可以尝试反复运行上面的 sql,然后就会发现,每次运行的结果都是相同的,随机抽取数据都是上面给的 3 条。为什么呢? 从 sql 来理解,上面的语句相当于生成了一个随机序列,每条记录都分配了一个随机值,然后所有记录按照随机值排序,从排序结果中取前 3 条,以此达到随机选择的目的。 然后 ra....