У меня есть следующая таблица, которая должна обновляться на основе двух столбцов в одной таблице. В SQL SEVER для таких расчетов я использовал Over (partition by), но он не работает в PostgreSQL. Как добиться следующего в PostgreSQL
Оценка имени таблицы и структура таблицы приведены ниже:. Если Current_status и targert_staus для всех sub_cap закрыты, статус для емкости, cap_status будет завершен. если какое-либо значение в current_status или target_status открыто для Capacity, то cap_status будет открыто. То же самое относится и к функции, если все Capacity закрыты, тогда Func_staus завершено или открыто. То же самое относится и к сайту.
Id Site Function Capacity sub_cap current_status target_status site_status func_status cap_status
C1 S1 F1 C1 SC1 Close Close
C2 S1 F1 C1 SC2 Close Close
C3 S1 F1 C2 SC7 Close Close
C4 S2 F1 C1 SC3 Close Close
C5 S2 F1 C1 SC4 Close Close
C6 S2 F1 C2 SC5 Close Open
C7 S2 F1 C3 SC6 Open Close
C8 S2 F1 C4 SC6 Open Open
Для каждого сайта, если все вложенные закрытые статусы закрыты, столбец Site_STATUS должен быть «ЗАВЕРШЕН». Для каждой функции, если все закрытые закрытые заголовки закрыты, тогда Func_STATUS Столбец должен быть «ЗАВЕРШЕН». Под каждой емкостью, если все вложенные файлы имеют закрытый статус, являются «закрытыми», тогда столбец Cap_STATUS должен быть «ЗАВЕРШЕН»
Id Site Function Capacity sub_cap current_status target_status site_status func_status cap_status
C1 S1 F1 C1 SC1 Close Close COMPLETE COMPLETE COMPLETE
C2 S1 F1 C1 SC2 Close Close COMPLETE COMPLETE COMPLETE
C3 S1 F2 C2 SC7 Close Close COMPLETE COMPLETE COMPLETE
C4 S2 F1 C1 SC3 Close Close OPEN OPEN COMPLETE
C5 S2 F1 C1 SC4 Close Close OPEN OPEN COMPLETE
C6 S2 F1 C2 SC5 Close Open OPEN OPEN OPEN
C7 S2 F3 C3 SC6 Open Close OPEN OPEN OPEN
C8 S2 F4 C4 SC6 Open Open OPEN OPEN OPEN