SQL 12 抽樣取數

2021-09-25 15:37:59 字數 841 閱讀 7768

表結構為user_id,reg_time,age, 寫一句sql按user_id隨機抽樣2000個使用者 寫一句sql取出按各年齡段(每10歲乙個分段,如(0,10))分別抽樣1%的使用者

1)隨機抽樣2000個使用者

select

*from

table

order

by rand(

)limit

2000

2)取出各年齡段抽樣1%的使用者

set

@target=0

set@count_user=0

select

@target:=

@target+10

as age_right,

*from

table

as t1

where t1.age >=

@target-10

and t1.age <

(@target

)and t1.id in

(select floor(

count(*

)*0.1) from

table

as t2

where t1.age >=

@target-10

and t1.age <

(@target

)order

by rand(

)limit ??)

(mysql下按百分比取數沒有想到比較好的方法,因為limit後面不能接變數。想到的方法是先計算出每個年齡段的總數,然後計算出1%是多少,接著給每一行加乙個遞增+1的行標,當行標=1%時,結束)

SQL隨機抽樣取數(大規模)V0 2

時間緊張 不想看太多的話,請直接拉到最後 快速隨機id方法 一般來講,小規模資料集,sql隨機取數很好做 select from table name order by rand limit line number但是面臨大規模資料集的時候 一般超過千萬條以上 的時候,中颱都很費勁,此時需要使用下面...

SQL 隨機抽樣的總結

對於 sql 隨機抽樣我們常想到的就是 newid 但如果對於乙個在百萬 千萬甚至更大海量資料表中抽樣的話,簡單的 newid 其效能,效率就不是很理想了。所以在這裡有必要討論一下,擇優而用。long goods 是乙個百萬資料的表,ctrl l 執行以下語句 id index 是我為主鍵加的乙個非...

第12章 重抽樣與自助法

r語言的再複習之路 置換檢驗步驟 1 與引數方法類似,計算觀測資料的t統計量,稱為t0 2 將兩組資料放在乙個組中 3 隨機分配一半到a處理中,分配一半到b處理中 4 計算並記錄新觀測的t統計量 5 對每一種可能的隨機分配重複步驟 3 4 6 將所有情況下的t統計量按公升序排列,這便是基於樣本資料的...