Jest tu wiele problemów.Tworzysz ciągi SQL. Nie rób tego! Zamiast tego użyj parametrów SQL! Niepotrzebnie powtarzasz dużo kodu. Używasz tabel danych, czego unikałbym, przynajmniej w powershell. Nie używasz ponownie połączenia z bazą danych.
Podczas pracy z SQL zawsze staraj się unikać pętli z zapytaniem. Spróbuj i zastanów się, czy możesz zamiast tego przepisać SQL.
Wypróbuj ten SQL:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
To powinno dać ci liczbę wszystkich różnych wartości col2.