DISTINCT ile istediğini yapamazsın, benzersiz olanları grupladığı için
DISTINCT alan1,alan2... diye yaptığında her alanı kendi benzersizlerine göre grupluyacaktır ve yine benzer alanlar karşına gelecektir.

sql ile bu halledilmiyor sanırım. GROUP BY ilede yapılmaz sanırım.

Şöyle birşey yapabilirsin ama.

Distinct yada group by ile önce isimleri alırsın C# ile yeni bir sorgu yapıp ve bir for döngüsüne sokup o ismin tüm alanlarını çekebilirsin