hi @Well_K you halfway there, GroupBy will group your OS's into a ServerType group then you need to count the instance in the column for each servertype.
Consider the following:
create 20 records and assign each one a windows os with a random version number
datasource = ClearCollect(colMyOs, ForAll(Sequence(20,12,2),{os: "Windows " & RandBetween(12,15) }))
Grouping the column will result in return uniquely the windows os version number as ServerType
GroupBy(colMyOs,"os", "ServerType")
Now the count how many times a servertype occurs
AddColumns(GroupBy(colMyOs,"os","ServerType"),"Total",CountRows('ServerType'))
Result

Hope it Helps,
R