Ответ на ваш вопрос будет следующим:
select DISTINCT bm.book_cd_id,
count(*) over ( partition by bm.book_cd_id),
sum(amt) over ( partition by bm.book_cd_id)
from ldfods_prd.gl_fincl_dtl fd,
ldfods_prd.gl_book_cd_hier_mstr bm
where fd.book_cd_mstr_id = bm.book_cd_mstr_id
and fy = 2017
and acctg_prd = 1;
Но на самом деле это был бы шаг в неверном направлении.Ваш опубликованный запрос в основном «даст мне одну запись в моем наборе результатов для каждого book_cd_id
и для каждого, дайте мне количество записей с этим book_cd_id
и суммой столбцов этих записей amt
».То, как вы написали свой запрос, используя обычные агрегатные функции, это именно то, как это сделать.Вы бы не хотели вводить оконные функции просто ради этого.