Volovikov Alexander пре 4 месеци
родитељ
комит
51f462a07e
5 измењених фајлова са 101 додато и 0 уклоњено
  1. 6 0
      _Infra/scripts/20240207_1.sql
  2. 10 0
      _Infra/scripts/20240207_2.sql
  3. 44 0
      _Infra/scripts/20240207_3.sql
  4. 15 0
      _Infra/scripts/20240207_4.sql
  5. 26 0
      readme.md

+ 6 - 0
_Infra/scripts/20240207_1.sql

@@ -0,0 +1,6 @@
+-- Пример для создания связей
+alter table public.employees 
+add constraint military_rank_id_contraint 
+foreign key (military_rank_id)
+references public.military_ranks(id);
+

+ 10 - 0
_Infra/scripts/20240207_2.sql

@@ -0,0 +1,10 @@
+-- Получить список пользователе которые делали измерения на 
+-- высоте 100 метров
+select * from public.employees as t1
+inner join measurment_baths as t2 
+on t2.emploee_id = t1.id
+inner join measurment_input_params as t3
+on t2.measurment_input_param_id = t3.id
+where
+    t3.height = 100
+

+ 44 - 0
_Infra/scripts/20240207_3.sql

@@ -0,0 +1,44 @@
+-- Пример получения значений для интерполяции
+do $$
+declare
+  var_param interpolation_params;
+  var_temperature numeric(8,2);
+
+begin
+
+var_temperature = 22;
+
+select 
+temperature, delta,
+(      select temperature from temp1  
+		where
+			temperature >= var_temperature
+		order by id  limit 1
+) as 	temperature1,	
+	
+( select delta from 
+	temp1  
+	where
+		temperature >= var_temperature
+	order by id	limit 1
+	
+ ) as delta1
+into 
+    var_param.x0, var_param.y0, var_param.x1, var_param.y1
+from temp1  as t1 where temperature <= var_temperature order by id
+desc limit 1;
+
+raise notice 'param %', var_param;
+
+end$$;
+
+--NOTICE:  param (20.00,25.00,1.50,2.00,)
+-- select * from temp1
+/*
+20.00	1.50	1
+25.00	2.00	2
+30.00	3.50	3
+*/
+
+
+

+ 15 - 0
_Infra/scripts/20240207_4.sql

@@ -0,0 +1,15 @@
+-- Type: interpolation_params
+
+-- ОТдельный тип данных для интерполяции
+
+CREATE TYPE public.interpolation_params AS
+(
+	x0 numeric(4,2),
+	x1 numeric(4,2),
+	y0 numeric(4,2),
+	y1 numeric(4,2),
+	x numeric(4,2)
+);
+
+ALTER TYPE public.interpolation_params
+    OWNER TO admin;

+ 26 - 0
readme.md

@@ -20,3 +20,29 @@
 pg_dump -h localhost -U admin study2025 > 20250131.sql
 
 ```
+
+### Домашние задания
+| Период       | Задание                    | Решение                   |
+|--------------|----------------------------|---------------------------|
+| | | |
+
+| 1    | **2024-01-31** | |
+
+ 1. Создать таблицу для учета пользователей системы. Предусмотреть справочник военных должностей. 
+ 2. Изменить таблицу `measurement_batch` изменить поле `username`. 
+ 3. Оформить решение в виде скрипта и приложить в виде PullRequest. Если есть вопросы по домашнему заданию, написать в Forlabs.
+
+[**Решение**](./_Infra/scripts/HomeWork20240131.sql)
+
+| | | | 
+| 2   | **2024-02-07** | |
+
+1. Создать `pgSQL` скрипт в который поместить прошлое задание по созданию инфраструктуры проекта.
+2. Добавить в `pgSQL` скрипт таблицу поправок по температуре (`Таблица 1`). Так же, добавить данные в эту таблицу.
+3. В скрипт включить создание связей по ключам между таблицами и тип данных `interpolation`
+4. Написать отдельный `pgSQL` скрипт для расчета поправке к температуре на основе `Таблица 1` с применением интерполяции.
+5. Приложить решение в виде PullRequest в решение включить результат расчета интерполяции.
+
+
+
+