Если вы не хотите отфильтровывать строки, где master
НЕДЕЙСТВИТЕЛЕН, вы можете сделать что-то вроде
ВЫБРАТЬ мастера,
Сумма (случай, когда хозяин обнуляется
ТО 0
ELSE 1
КОНЕЦ) КОНЕЦ (РАЗДЕЛ МАСТЕРА)
ОТ темп
SQL> ed
Wrote file afiedt.buf
1 WITH temp as (
2 SELECT 'A' as master , 1 Col from dual
3 UNION SELECT 'A' , 3 from dual
4 UNION SELECT 'B' , 1 from dual
5 UNION SELECT 'B' , 2 from dual
6 UNION SELECT 'C' , 1 from dual
7 UNION SELECT NULL , 1 from dual
8 UNION SELECT NULL , 2 from dual)
9 SELECT master,
10 SUM( CASE WHEN master IS NULL
11 THEN 0
12 ELSE 1
13 END) OVER (PARTITION BY master)
14* FROM temp
SQL> /
M SUM(CASEWHENMASTERISNULLTHEN0ELSE1END)OVER(PARTITIONBYMASTER)
- -------------------------------------------------------------
A 2
A 2
B 2
B 2
C 1
0
0