我試圖檢查一列表中的數字分佈。我不想在整個表上計算(這很大 - 幾十千兆字節),我想通過重複採樣來估計。我覺得這個典型的Postgres的方法是用PostgreSQL中的表替換有效的重複採樣?
select COLUMN
from TABLE
order by RANDOM()
limit 1;
但這是重複採樣慢,特別是因爲(我懷疑),它操縱我每次運行它時整列。
有沒有更好的方法?
編輯:只是爲了確保我表達是正確的,我要做到以下幾點:無需每次重新排序整個龐大的表
for(i in 1:numSamples)
draw 500 random rows
end
。也許我可以得到所有的錶行ID,並在R或其他東西中取樣,然後請求這些行?
在SQL2003那裏介紹(DB2已經實現了它,不知道TABLESAMPLE子句如果有其他人)。它已被討論(https://wiki.postgresql.org/index.php?title=TABLESAMPLE_Implementation&action=history)postgres,但我不知道目前的狀態。 – Lennart