add batch remove batch split batch comment selection show hidden batches hide batch highlight batch
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE t1 (
ClientID NUMBER,
Service varchar(25) NOT NULL,
Status varchar(25) NOT NULL,
CloseDate date
);

INSERT ALL
INTO t1(ClientID,Service,Status,CloseDate) VALUES (1,'A','Closed','31-may-20')
INTO t1(ClientID,Service,Status,CloseDate) VALUES (1,'A','Open',null)
INTO t1(ClientID,Service,Status,CloseDate) VALUES (1,'A','Open',null)
INTO t1(ClientID,Service,Status,CloseDate) VALUES (2,'A','Open',null)
INTO t1(ClientID,Service,Status,CloseDate) VALUES (3,'A','Closed','31-may-20')
select * from dual


5 rows affected
SELECT ClientID,
Service,
Status,
CloseDate,
coalesce((SELECT COUNT(*) OVER(PARTITION BY clientid ORDER BY clientid) FROM t1 WHERE t1.ClientID = t.ClientID and t1.CloseDate IS NULL FETCH FIRST 1 ROWS ONLY),0) AS OpenCount
FROM t1 t;

CLIENTID SERVICE STATUS CLOSEDATE OPENCOUNT
1 A Closed 31-MAY-20 2
1 A Open null 2
1 A Open null 2
2 A Open null 1
3 A Closed 31-MAY-20 0