У меня есть запрос MySQL, как показано ниже;Я хотел бы выбрать верхнюю запись для каждого диапазона из 600 записей в таблице с 1,8 млн. Записей.До сих пор мне нужно выполнить цикл 3000 раз, чтобы выполнить это, что не является эффективным решением.
Схема базы данных;
Table: bet_perm_13predict
id bet_id perm_id avg_odd avg_odd2 avg_odd3
1 23 1 43.29 28.82 28.82
2 23 2 42.86 28.59 28.59
3 23 3 43.13 28.73 28.73
Table: bet_permute_13games
perm_id perm_code
1 0000000000000
2 0000000000001
3 0000000000002
4 0000000000010
Пример MySQL Query in PHP
$totRange = 0; //Used as starting point in rang
$range = 600; //Used as range
$stop = 0;//Used as endPoint of range
while($totRange < 1800000){
$stop = $totRange+$range;
$sql = "SELECT (tb1.avg_odd2 + tb1.avg_odd3) AS totAvg_odd ,
tb1.perm_id , tb1.avg_odd, tb1.avg_odd2, tb1.avg_odd3, tb2.perm_code
FROM bet_perm_13predict tb1
INNER JOIN bet_permute_13games tb2 ON tb2.perm_id = tb1.perm_id
WHERE tb1.bet_id = '$bet_id' && tb1.perm_id
BETWEEN $startRange AND $stop ORDER BY totAvg_odd ASC LIMIT 1"
$q1 = $this->db->query($sql);
$totRange = $stop;
}
Другими словами, я хочу выбрать выборку данных, которая будет представлять всю таблицу, причем выборка не случайная, а предопределенная с использованием верхней записи в диапазоне 600. До сих пор я понятия не имею, как поступить.По этому вопросу нет четких онлайн-материалов.