Je zde spousta problémů. Vytváříte řetězce SQL. Nedělejte to! Místo toho použijte parametry SQL! Zbytečně opakujete spoustu kódu. Používáte datové tabulky, čemuž bych se vyhnul, alespoň v powershell. Nepoužíváte znovu připojení k databázi.
Při práci s SQL se vždy opravdu snažte vyhnout smyčkám s dotazem uvnitř. Zkuste a přemýšlejte, jestli nemůžete místo toho přepsat SQL.
Zkuste toto SQL:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
To by vám mělo poskytnout počet všech různých hodnot col2.