sql >> Databasteknik >  >> RDS >> Mysql

mysql funktionsskalningsberäkning

Din fråga är lite kort om förklaringar, men jag tror att du vill ha fönsterfunktioner (endast tillgängligt i 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'

Eller, i tidigare versioner, kan du få samma resultat genom att sammanfoga tabellen med en sammanställd fråga:

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'



  1. MyISAM unika nycklar skärs av vid 64 byte, vilket orsakar kollisioner

  2. SQLAlchemy JSON som blob/text

  3. Hämta TOP 10 rader utan att använda TOP eller LIMIT? – Veckans intervjufråga #247

  4. Oracle SQL-sats utvärderingsordning