Há muitos problemas aqui. Você está criando strings SQL. Não faça isso! Em vez disso, use parâmetros SQL! Você está repetindo muito código desnecessariamente. Você está usando tabelas de dados, o que eu evitaria, pelo menos no powershell. Você não está reutilizando a conexão de banco de dados.
Sempre tente muito evitar loops com uma consulta interna ao trabalhar com SQL. Tente e pense se você pode reescrever o SQL.
Tente este SQL:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
Isso deve fornecer a contagem de todos os diferentes valores de col2.