我不明白,這個查詢是如何工作的postgresql 9.4/9.5 - 從generate_series中選擇(常量值)作爲id - 此查詢如何工作?
select * from users
where id in (
select round(random() * 21e6)::integer as id
from generate_series(1, 110) -- Preserve duplicates
)
limit 100
來源:https://www.periscopedata.com/blog/how-to-sample-rows-in-sql-273x-faster.html
如果我試圖在自然語言翻譯,這將是:
- SELECT * FROM用戶其中id在... =>選擇所有在值內有id的用戶...
- select round(random()* 21e6):: integer as id =>如何選擇一個數字,在這裏就像「select 3500作爲ID「 。我認爲通常你會選擇一個列,例如'select company_name as name ???'而不是'select 15 as name'
- from generate_series(1,110)=>如何選擇3500作爲id,然後告訴他從一個序列中選擇3500(1,2,3,...,108,109,110)
我真的不明白這個複雜的查詢。
有人能幫我理解每一步嗎?
非常感謝您的幫助 – Mathieu