У меня есть структура таблицы, как показано ниже
![enter image description here](https://i.stack.imgur.com/GNIK4.png)
Я пытаюсь найти минимум для каждой группы элементов.Я должен найти минимумы для разных групп предметов.Хотя мой код работает, я уверен, что это не элегантный и эффективный способ сделать это.
поиск минимального значения WHERE itemid IN (1,2)
select subject_id,icu_id,value as min_val_1 FROM
(SELECT c.subject_id,c.time_1,d.min_time,d.max_time,c.value,c.icu_id,
row_number() OVER (PARTITION BY c.subject_id ORDER BY c.value,c.time_1) AS rank
from table_1 d
left join table_2 c
on c.subject_id = d.subject_id and (c.icu_id = d.icu_id_1 or c.icu_id = d.icu_id_2)
where c. itemid in
(1,2)) SBP
where rank = 1
order by subject_id,charttime
найти минимум, где itemid в (3,4)
select subject_id,icu_id,value as min_val_2 FROM
(SELECT c.subject_id,c.time_1,d.min_time,d.max_time,c.value,c.icu_id,
row_number() OVER (PARTITION BY c.subject_id ORDER BY c.value,c.time_1) AS rank
from table_1 d
left join table_2 c
on c.subject_id = d.subject_id and (c.icu_id = d.icu_id_1 or c.icu_id = d.icu_id_2)
where c. itemid in
(3,4)) SBP
where rank = 1
order by subject_id
Как вы можете видеть, все то же самое.Единственная разница - это itemid.Есть ли какой-нибудь элегантный способ объединить эти два?Вы можете мне помочь?
Я ожидаю, что мой вывод будет таким же?
![enter image description here](https://i.stack.imgur.com/swsR5.png)