20250207_3.sql 760 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. -- Пример получения значений для интерполяции
  2. do $$
  3. declare
  4. var_param interpolation_params;
  5. var_temperature numeric(8,2);
  6. begin
  7. var_temperature = 22;
  8. select
  9. temperature, delta,
  10. ( select temperature from temp1
  11. where
  12. temperature >= var_temperature
  13. order by id limit 1
  14. ) as temperature1,
  15. ( select delta from
  16. temp1
  17. where
  18. temperature >= var_temperature
  19. order by id limit 1
  20. ) as delta1
  21. into
  22. var_param.x0, var_param.y0, var_param.x1, var_param.y1
  23. from temp1 as t1 where temperature <= var_temperature order by id
  24. desc limit 1;
  25. raise notice 'param %', var_param;
  26. end$$;
  27. --NOTICE: param (20.00,25.00,1.50,2.00,)
  28. -- select * from temp1
  29. /*
  30. 20.00 1.50 1
  31. 25.00 2.00 2
  32. 30.00 3.50 3
  33. */