2
몇 가지 계산을 수행하는 데 사용하는 데이터 테이블이 있습니다. 내가 계산 결과를 분류하는 데 사용되는 범위의 집합을 포함 다른 테이블이 다른 손으로MySQL : 점수 계산을위한 쿼리 최적화
+------------+-----------+------+----------+
| id_process | id_region | type | result |
+------------+-----------+------+----------+
| 1 | 4 | 1 | 65.2174 |
| 1 | 5 | 1 | 78.7419 |
| 1 | 6 | 1 | 95.2308 |
| 1 | 4 | 1 | 25.0000 |
| 1 | 7 | 1 | 100.0000 |
+------------+-----------+------+----------+
: 같은 계산 후 결과 데이터 세트 보인다. 범위 테이블은 다음과 같습니다.
계산할 때 각 값에 해당 '상태'열을 추가하는 쿼리를 수행해야합니다. 현재 계산 쿼리에 다음 필드를 추가하면됩니다.
select
...,
...,
[math formula] as result,
(select status
from ranges r
where result between r.start and r.end) status
from ...
where ...
괜찮습니다. 그러나 많은 행 (200K 이상)이있을 때 계산 쿼리가 느려집니다.
제 질문은 : 하위 쿼리없이 '상태'값을 찾는 방법이 있습니까?
이전에 비슷한 작업을 한 사람이 있습니까?
감사