Please try the following T-SQL:
-- DDL and sample data population, start
DECLARE @tbl table(TableId int, SId int, Data varchar(200), DataOwner int)
insert into @tbl VALUES
(1, 10, 'aaaa', 1001)
,(2, 10, 'aaaa', 1000)
,(3, 20, 'bbbb', 1000)
,(4, 10, 'ccc', 2000);
-- DDL and sample data population, end
DECLARE @separator CHAR(1) = ',';
;WITH rs AS
(
SELECT c.TableId, c.SId, c.Data
, STUFF((SELECT @separator + CAST(DataOwner AS VARCHAR(30)) AS [text()]
FROM @tbl AS O
WHERE O.Data = C.Data
ORDER BY SId, DataOwner ASC
FOR XML PATH('')), 1, 1, NULL) AS DataOwnerList
, ROW_NUMBER() OVER (PARTITION BY Sid, data ORDER BY C.TableId) AS seq
FROM @tbl AS C
)
SELECT TableId, SId, Data, DataOwnerList
FROM rs
WHERE seq = 1;