我在使用SAMPLE子句時出現了一個奇怪的問題。爲什麼第一個SQL不起作用,而第二個則正常工作。隨機抽樣Oracle SQL - 在缺乏ROWID的情況下
SELECT * FROM SYS.ALL_TABLES SAMPLE(10)
SELECT * FROM MIDAS.GERMPLASM SAMPLE(10)
我試圖SAMPLE
SQL查詢不只是一個表,但我無法弄清楚如何我應該使用樣本條款。樣本條款之外還有其他方法嗎?注意:我想以隨機方式做到這一點;不是第N行。
更新:
首先,感謝您閱讀這個問答,以幫助。但是我已經知道這個SQL不起作用,因爲SAMPLE子句使用隱藏列ROWID。我不知道如何做到這一點,如果表中不存在ROWID。
這裏是一個重複的例子,SQL,我嘗試隨機抽樣:
SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner, cons.constraint_type
FROM all_constraints cons, all_cons_columns cols
WHERE cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position
我想小數據隨機子集(從查詢),從數據庫讀取之前的一切計算表列的統計特性。
謝謝
將'sys.all_all_tables'改爲'sys.all_tables' – 2014-12-04 21:52:25
它不起作用!我想到了兩個潛在的問題:1.本表沒有主鍵; 2. SAMPLE子句使用像ROWID這樣的隱藏列來進行抽樣! – 2014-12-04 21:54:59
取代視圖採樣,請嘗試對視圖所基於的表格進行採樣。祝你好運。 – 2014-12-04 22:52:22