Ответ на вопрос OP заключается в том, что MySQL :: Result ведет себя как перечисление, поэтому вы можете преобразовать его в массив строк, а затем проиндексировать значение первой строки:
sql_result1.to_a[0][0]
Однако решение проблемы ОП состоит в том, чтобы просто позволить ActiveRecord сделать свое дело:
Model.where(gender: 'female').where('ROUND(height, 2) = ROUND(?, 2)', height).count
Новая проблема заключается в том, что сравнивается число с плавающей точкой на равенство - ROUND(.., 2)
несмотря на это. Исправление заключается в сравнении небольшого диапазона:
Model.where(gender: 'female').where('ROUND(?, 2) BETWEEN ROUND(height, 2) - 0.0000001 AND ROUND(height, 2) + 0.0000001', height).count
Может быть доступен менее избыточный метод базы данных для сравнения значений с плавающей точкой по диапазону ...