SQL根据特定列随机选择行

时间:2018-07-16 17:01:55

标签: sql hive

我有一张大桌子,其中的一列有客户ID。我想随机选择3%的客户及其记录。每个客户可能有数千条记录/行。因此,这里的特定列是客户ID。

这是我的做法,但这是不正确的:

Select *
FROM
  my_table group by customer_iD
WHERE
  rand() < 0.3 
;

1 个答案:

答案 0 :(得分:1)

一种方法是:

select t.*
from mytable t
where t.customer_id in (select t2.customer_id
                        from mytable t2
                        group by t2.customer_id
                        having rand() < 0.3
                       );