oracle中随机查询

百曉生 2018-04-25 04:58:43
我想在oracle中查询时随机查出50%的数据,
随机时只能多于50%不能少,
数据量是不知道的,
用sample函数的话又有误差,可能大于50%,可能少于50%,
用dbms_random.random又需要指定条数,

请问大家有什么方法吗?
...全文
524 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2018-04-26
  • 打赏
  • 举报
回复
引用 1 楼 lfq0404 的回复:

SELECT   *
      FROM   (  SELECT   *
                  FROM   table_name
                 WHERE   xxx
              ORDER BY   DBMS_RANDOM.random)
     WHERE   ROWNUM <= (select count(1)/2+1 from table_name)
看看这个满足不
是的这样可以,而且查出的数据量是确定的,准确的,谢谢! 其实也想到另一种思路,使用sample函数,误差不超过1%,可以设置成51%,也能满足需求
卖水果的net 2018-04-26
  • 打赏
  • 举报
回复
with m as ( select * from user_objects order by dbms_random.value ) select * from m where rownum <= (select (count(*) + 1) / 2 from user_objects)
lfq0404 2018-04-25
  • 打赏
  • 举报
回复

SELECT   *
      FROM   (  SELECT   *
                  FROM   table_name
                 WHERE   xxx
              ORDER BY   DBMS_RANDOM.random)
     WHERE   ROWNUM <= (select count(1)/2+1 from table_name)
看看这个满足不

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧