У меня есть промежуточный результат, как показано ниже
year ID edition
1996 WOS:000074643400033 WOS.SCI
1996 WOS:000074643400033 WOS.ISSHP
1996 WOS:000074643400033 WOS.ISTP
2004 WOS:000222568300039 WOS.ISTP
2004 WOS:000222568300039 WOS.SCI
2008 WOS:000265048200175 WOS.ISTP
2009 WOS:000275179901182 WOS.ISTP
2009 WOS:000275179901182 WOS.ISSHP
Теперь я должен выполнить подсчет поверх этого результата при следующих условиях, если идентификатор содержит как "WOS.ISTP", так и "WOS.ISSHP". «Выпуск за один и тот же год, его нужно посчитать всего один раз.
моя финальная таблица должна выглядеть следующим образом.
Примечание : я добавил столбец "промежуточный_чет" только для понимания цели, он не должен появляться в итоговой таблице.
year ID edition intermediate_count Final_count
1996 WOS:000074643400033 WOS.SCI 1 2
1996 WOS:000074643400033 WOS.ISSHP 1
1996 WOS:000074643400033 WOS.ISTP
2004 WOS:000222568300039 WOS.ISTP 1 2
2004 WOS:000222568300039 WOS.SCI 1
2008 WOS:000265048200175 WOS.ISTP 1 1
2009 WOS:000275179901182 WOS.ISTP 1 1
2009 WOS:000275179901182 WOS.ISSHP
Я пытался использовать CASE в следующим образом, но не сработало.
select id, year,
case
when edition_code = 'WOS.ISTP' and edition_code = 'WOS.ISSHP' then 'both'
else edition_code
end as edition_code_new
from table
group by id, year, edition_code_new
order by id;
любая помощь будет признательна, спасибо заранее.