Der er mange problemer her. Du bygger SQL-strenge. Gør ikke dette! Brug SQL-parametre i stedet! Du gentager en masse kode unødvendigt. Du bruger datatabeller, hvilket jeg ville undgå, i det mindste i powershell. Du genbruger ikke databaseforbindelsen.
Prøv altid virkelig hårdt for at undgå loops med en forespørgsel inde, når du arbejder med SQL. Prøv og tænk, om du kan omskrive SQL'en i stedet for.
Prøv denne SQL:
SELECT
col2,
COUNT(<thePrimaryKeyColumnOfTheTable>)
FROM [master].[sys].[table_name]
GROUP BY col2
Det skulle give dig optællingen af alle de forskellige værdier af col2.