การสุ่มตัวอย่าง (Sampling) หมายถึง กระบวนการเลือก “ตัวอย่าง” จาก “ประชากร” เพื่อให้กลุ่มตัวอย่างเป็นตัวแทนของประชากรในการให้ข้อมูล การที่จะเลือกตัวอย่างให้เป็นตัวแทนที่ดีของประชากรได้นั้น จะต้องทำการเลือกแบบสุ่ม (random) หรือเลือกอย่างไม่ลำเอียง (unbias)
นี่เป็นความหมายของการสุ่มตัวอย่าง ซึ่งหลายครั้งเราก็หลีกเลี่ยงไม่ได้ที่จะเลือกข้อมูลบางกลุ่มข้อมูลมาทำงาน ปกติก็ใช้หลักจากข้างบนนั่นแหล่ะเลือกมา (จะใช้วิธี 1-5 ก็เอาที่สบายใจ)
ในกลุ่มมีคำถามนึงน่าสนใจ ถามขึ้นในกลุ่มตามนี้
คร่าว ๆ ก็คืออยากได้กลุ่มข้อมูลมาจำนวนนึงแยกตามรหัส/กลุ่มการวินิจฉัยโรค มาดูอีก 1 วิธีกัน
- สร้างตารางทดสอบกัน (เอาตารางเกี่ยวกับผลไม้เนี่ยแหล่ะ เมื่อเช้าจัดมา //แพคเกจแบบนี้โคตรตอบโจทย์เอาจริง ๆ คือกินวันนึงก็ 1-2 ลูกเอง เยอะหน่อยก็ช่วงเล่นกีฬา แล้วกล้วยหอมหวีนึงนี่ก็ใช่ว่าหวีเล็ก ซื้อมาเป็นหวีทีก็กินไม่หมด T_T)
CREATE TABLE fruits (`type` varchar(50), `variety` varchar(50), `price` float) ; INSERT INTO fruits (`type`, `variety`, `price`) VALUES ('apple', 'gala', 2.79), ('apple', 'fuji', 0.24), ('apple', 'limbertwig', 2.87), ('orange', 'valencia', 3.59), ('orange', 'navel', 9.36), ('pear', 'bradford', 6.05), ('pear', 'bartlett', 2.14), ('cherry', 'bing', 2.55), ('cherry', 'chelan', 6.33);
- ใช้ฟังก์ชั่น RAND() ใน MySQL เพื่อให้ได้ค่าตัวเลขที่ได้จากการสุ่มขึ้นมาและทำการจัดเรียงตามกลุ่ม (กำหนดเงื่อนไข) ในที่นี้เรียงตาม
`type`
RAND() – Returns a random floating-point value v in the range 0 <= v < 1.0
SELECT type, variety, price, RAND() FROM fruits ORDER BY type, 4
- ใส่ลำดับที่ของแต่ละกลุ่มไว้
SET @num:=0, @type:=''; SELECT @num:=IF(@type = A.type, @num + 1, 1) as number, @type:=A.type as dummy, A.* FROM ( SELECT type, variety, price, RAND() FROM fruits ORDER BY type, 4 ) A
- เลือกจำนวนกลุ่มตัวอย่างตามที่ต้องการ (ในคำถามเลือก 2 ตัวอย่าง)
... WHERE number <= 2
ผลลัพธ์ที่ได้คือรายการที่ได้จากการสุ่มกลุ่มละ 2 ตัวอย่าง
- ขอให้สนุกกับเดือนแห่ง QOF จร้าาา
ป.ล.
ลองรันทดสอบได้ที่ http://sqlfiddle.com/#!9/350bc7/6