Ich habe meine Antwort nur auf den Titel Ihres Beitrags gestützt, da ich C# nicht kenne und die gegebene Abfrage nicht verstanden habe. Aber in MySQL schlage ich vor, dass Sie Subselects ausprobieren. Holen Sie sich zuerst eine Reihe von Primärschlüsseln interessanter Spalten und wählen Sie dann Daten aus diesen Zeilen aus:
SELECT somecolumn, anothercolumn
FROM sometable
WHERE id IN (
SELECT min(id)
FROM sometable
GROUP BY somecolumn
);