ここには多くの問題があります。SQL 文字列を作成しています。これをしないでください!代わりに SQL パラメーターを使用してください!あなたは無意味に多くのコードを繰り返しています.あなたはデータ テーブルを使用していますが、少なくとも PowerShell では避けたいと思います.データベース接続を再利用していません.
SQL を使用する場合は、内部でクエリを使用してループを回避するように常に最善を尽くしてください。代わりに SQL を書き直すことができるかどうか考えてみてください。
この SQL を試してください:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
これにより、col2 のすべての異なる値のカウントが得られるはずです。