ขอโทษนะคะที่ถามไม่ชัดเจน คือหนูต้องการนำคำตอบที่เรียงกันในตัวแปร ans มาแสดง 10 อันดับ
แต่ติดตรงที่ว่า 10 ลำดับนี้มีชื่อผู้ใช้ซ้ำกัน
เช่นนาย a มีผลลัพธ์ 56
นาย a มีผลลัพธ์ 58
นาย a มีผลลัพธ์ 60
นาย b มีผลลัพธ์ 61
นาย c มีผลลัพธ์ 62
นาย c มีผลลัพธ์ 63
ถ้าต้องการให้แสดงเพียงแค่ นาย a มีผลลัพธ์ 60 และก็ นาย c มีผลลัพธ์ 63 ต้องทำยังหรอคะ ขอบคุณค่ะ
select fm.* from tablename fm, (
select max(m.id) x
from (select user_id, max(amt) mx from tablename group by user_id) as t
left join tablename as m on m.user_id = t.user_id and t.mx=m.amt
group by user_id) tx
where fm.id=tx.x
1 หาค่า user_id และค่า max ของ field ที่ต้องการ
2 กรณีที่ มี่ user_id ซ้ำกัน และค่ารวมซำกันอีก ก็ต้องเลือกมา 1 รายการ จาก id โดยนำค่าล่าสุดมาใช้(หรือค่าแรกก็ว่ากันไป)
https://stackoverflow.com/questions/2218999/how-to-remove-all-duplicates-from-an-array-of-objects
ถ้าใช้เป็น function แบบนี้ได้ไหมคะ หรือเป็นคิวรี่ได้อย่างเดียว