我有一个看起来像这样的数据集
id date
250 01-JAN-15
250 01-MAR-15
360 01-JUN-15
470 01-FEB-15
470 01-DEC-15
470 01-NOV-15
780 01-APR-15
790 01-SEP-15
790 01-MAY-15
我想随机选择行,这样重复的id
只会出现一次。例如:
id date
250 01-MAR-15
360 01-JUN-15
470 01-FEB-15
780 01-APR-15
790 01-SEP-15
我当前的解决方案使用分析函数,这需要很长时间才能在数亿行上运行:
select * from(
select aa.*, row_number() over (partition by id order by dbms_random.value) as random_flag
from table aa)
where random_flag = 1
有关如何在没有分析功能的情况下获得相同结果的任何提示?
答案 0 :(得分:0)
您可以尝试此查询:
SELECT id, (select t2.date from table t2 where t2.id = t1.id and rownum = 1)
FROM table t1
GROUP BY id;