1

我给出了查询:

select dbms_random.value 
  from table;

我如何获得 25% 的样品?

4

3 回答 3

5

select 语句允许这样做。

sample_clause允许您指示数据库从中的随机数据样本中进行选择,而不是从整个表中进行选择。

选择样本:示例 以下查询估计订单表中的订单数:

SELECT COUNT(*) * 10 FROM orders SAMPLE (10);

COUNT(*)*10
-----------
         70

这里

于 2012-07-20T12:48:06.757 回答
1
SELECT * FROM (
    SELECT temp.*, COUNT(*) OVER () count_rows
    FROM temp ORDER BY dbms_random.value) 
WHERE rownum <= 0.25 * count_rows;
于 2012-07-21T09:56:50.890 回答
1

另一种方法:

SELECT * FROM (
  SELECT mytable.*
        ,NTILE(4) OVER (ORDER BY DBMS_RANDOM.value)
         AS quartile
  FROM mytable
  )
WHERE quartile = 1;
于 2012-07-25T07:37:37.233 回答