source

mysql feature- scaling

nicesource 2023. 11. 5. 14:43
반응형

mysql feature- scaling

이렇게 정규화된 값을 선택하기 위해 mysql 쿼리를 공식화해야 합니다.normalized = (value-min(values))/(max(values)-min(values))저의 시도는 다음과 같습니다.

select 
    Measurement_Values.Time, 
    ((Measurement_Values.Value-min(Measurement_Values.Value))/(max(Measurement_Values.Value)-min(Measurement_Values.Value))) 
from Measurement_Values  
where Measurement_Values.Measure_ID = 49 and Measurement_Values.time >= '2020-05-30 00:00'

하나의 값만 반환하기 때문에 분명히 잘못된 것입니다.정확한 구문을 찾는 것을 도와주시겠습니까?

질문하신 내용은 설명이 조금 부족하지만, 창 기능(MySQL 8.0에서만 사용 가능)을 원하시는 것 같습니다.

select 
    time, 
    value,
    (value - min(value) over() / (max(value) over() - min(value) over()) normalized_value
from measurement_values  
where measure_id = 49 and time >= '2020-05-30 00:00'

또는 이전 버전에서는 집계 쿼리와 함께 테이블을 결합하여 동일한 결과를 얻을 수 있습니다.

select 
    mv.time, 
    mv.value,
    (mv.value - mx.min_value) / (mx.max_value - mx.min_value) normalized_value
from measurement_values  
cross join (
    select min(value) min_value, max(value) max_value
    from measurement_values
    where measure_id = 49 and time >= '2020-05-30 00:00'
) mx
where measure_id = 49 and time >= '2020-05-30 00:00'

언급URL : https://stackoverflow.com/questions/62211117/mysql-feature-scaling-calculation

반응형