Hier gibt es viele Probleme. Sie erstellen SQL-Strings. Tun Sie dies nicht! Verwenden Sie stattdessen SQL-Parameter! Sie wiederholen unnötig viel Code. Sie verwenden Datentabellen, die ich zumindest in Powershell vermeiden würde. Sie verwenden die Datenbankverbindung nicht erneut.
Versuchen Sie immer wirklich, Schleifen mit einer darin enthaltenen Abfrage zu vermeiden, wenn Sie mit SQL arbeiten. Versuchen Sie und überlegen Sie, ob Sie stattdessen die SQL umschreiben können.
Versuchen Sie dieses SQL:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
Das sollte Ihnen die Anzahl aller unterschiedlichen Werte von col2 geben.