jadi untuk mendapatkan sesuatu seperti ini saya akan menggunakan subquery.. dengan begitu Anda hanya meletakkan RAND() pada kueri luar yang akan jauh lebih sedikit membebani.
Dari apa yang saya pahami dari pertanyaan Anda, Anda ingin 200 laki-laki dari tabel dengan skor tertinggi ... jadi itu akan menjadi seperti ini:
SELECT *
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200
sekarang untuk mengacak 5 hasil akan menjadi seperti ini.
SELECT id, score, name, age, sex
FROM
( SELECT *
FROM table_name
WHERE age = 'male'
ORDER BY score DESC
LIMIT 200
) t -- could also be written `AS t` or anything else you would call it
ORDER BY RAND()
LIMIT 5