Não há função interna que conte ocorrências de substring em uma string, mas você pode calcular a diferença entre a string original e a mesma string sem vírgulas:
LENGTH(fooCommaDelimColumn) - LENGTH(REPLACE(fooCommaDelimColumn, ',', ''))
Ele foi editado várias vezes ao longo de quase 8 anos (uau!), então para maior clareza:a consulta acima não precisa de um
+ 1
, porque os dados de OPs têm uma vírgula extra à direita. Embora de fato, em geral, para a string que se parece com isso:
foo,bar,baz
a expressão correta seria LENGTH(col) - LENGTH(REPLACE(col, ',', '')) + 1