在我的数据库中,每个ID都有多个记录。在我的输出中,我想按照DATE为每个ID对行进行排序,而ID最终随机显示。Oracle SQL按随机顺序排列
这是我的代码工作,但显示排序ID,不会导致随机编号:
SELECT ID, VALUE, DATE
FROM TABLE
ORDER BY ID, DATE DESC;
我试图将其更改为
SELECT ID, VALUE, DATE
FROM TABLE
ORDER BY ID, dbms_random.value, DATE DESC;
,但它没有工作,给了我这个错误:
ORA-01652: unable to extend temp segment by 64 in tablespace TEMP01
我的猜测是我没有更多的磁盘分配给我的TEMP表空间,但如何修改它? 另外,我不确定我是否正确使用了dbms_random.value,是吗?
为了进一步说明我对展示随机ID的最后,请看下面的例子想法:
Origial:
ID VALUE DATE
1 200 1/2/2013
1 300 3/26/2013
2 200 2/2/2013
3 100 2/3/2015
3 500 6/21/2014
3 200 5/3/2014
期望:
ID VALUE DATE
2 200 2/2/2013
3 200 5/3/2014
3 500 6/21/2014
3 100 2/3/2015
1 200 1/2/2013
1 300 3/26/2013
真实世界的TABLE表有多大? –
我从我的原始数据中提取树列,其中有82,000,000行和50列 – datadatadata
随机排序的商业目的是什么?这是可能的。但是在一张8200万行的桌子上这样做会非常昂贵。你是否真的确信商业目的证明了这种费用? –