Я сталкиваюсь с очень странным поведением в отношении mysql сортировки по порядку, я пытаюсь отсортировать записи по шкале fee_range от высокой к низкой, которая вычисляется во время выполнения, первые 3,4 строки имеют наименьшие значения, а затем сортировка по вступает в силу и, кроме того, все записи отсортированы должным образом, есть ли что-то, что мне не хватает?
вот запрос, который я выполняю
SELECT `ddd`.`ID`, CONCAT(ddd.title, " ", ddd.name) AS name, `ddd`.`url`, `ddd`.`doc_gender`, `ddd`.`edu_degrees`, TRIM(BOTH ", " FROM ddd.specializations) AS specializations, `ddd`.`tel_appointments`, CONCAT("https://s3-eu-west-1.amazonaws.com/mdpk/images/profile-pics/doctors/", ddd.profile_image) AS profile_image, `ddd`.`yearsofexperience`, IF(MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)) = MAX(IF(daas.fee > 0, `daas`.`fee`, NULL)), MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)), CONCAT(MIN(IF(daas.fee > 0, `daas`.`fee`, NULL)), "-", MAX(IF(daas.fee > 0, `daas`.`fee`, NULL)))) AS fee_range, `dhdtl`.`locality`, `dhdtl`.`city`, `ddd`.`star_rating`, `ddd`.`is_paying`, `ddd`.`divert_to_cc`, `ddd`.`patient_records`, IF(MAX(daas.allow_online_booking + daas.has_active_subs) = 2, 1, 0) AS is_bookable, MAX(daas.has_active_subs) AS has_active_subscription, `ddd`.`verified_patients`, `ddd`.`average_wait_time`, (ddd.positive_reviews + ddd.negative_reviews) AS total_reviews, IF(ddd.verified_patients > 0 AND
ddd.positive_reviews + ddd.negative_reviews > 0 AND
ddd.positive_reviews + ddd.negative_reviews > 0 AND
(ddd.is_paying = 1 OR 1 = 0), ROUND(ddd.positive_reviews * 100 / (ddd.positive_reviews + ddd.negative_reviews), 0), 0) AS recommendation_percentage
FROM `doc_doc_details` AS `ddd`
JOIN `doc_specialization_relation` `dsr` ON `dsr`.`user_id` = `ddd`.`ID`
JOIN `doc_hosp_doctor` `dhd` ON `ddd`.`ID` = `dhd`.`user_id`
JOIN `doc_app_adv_settings` `daas` ON `dhd`.`hospital_id` = `daas`.`subs_id` AND `daas`.`prov_id`=`ddd`.`ID`
JOIN `doc_hospital_details` `dhdtl` ON `dhd`.`hospital_id` = `dhdtl`.`hosp_detail_id`
WHERE `dhdtl`.`country_id` = 1
AND `dhdtl`.`city_id` = '1'
AND `dsr`.`specialization_id` IN('72')
AND `ddd`.`published` = 1
GROUP BY `ddd`.`ID`
ORDER BY `has_active_subscription` DESC, MAX(fee_range) DESC, `ddd`.`manual_web_rank`, `ddd`.`computed_web_rank`, `dhd`.`is_primary` DESC
LIMIT 20
вот результаты
любая помощь по этому вопросу будет очень признателен