Count Distinct sobre partición por sql
Tengo una mesa como
col1ID col2String Col3ID Col4String Col5Data
1 xxx 20 abc 14-09-2018
1 xxx 20 xyz 14-09-2018
2 xxx 30 abc 14-09-2018
2 xxx 30 abc 14-09-2018
Me gustaría agregar una columna que cuente cuántas cadenas diferentes tengo en el grupo col4String por col1ID y col3ID.
Así que algo así como
COUNT(DISTINCT (Col4String)) over (partition by col1ID, col3ID)
pero no funciona, recibo un error
l uso de DISTINCT no está permitido con la cláusula OVER.
Msg 102, Nivel 15, Estado 1, Línea 23.
Tengo más columnas como col2String, col5Data pero no deberían verse afectadas, por lo que no puedo usar distintas al principio deSELECT
ydense_rank()
tampoco parece funcionar en mi caso.
Gracias por ayudar