Ho basato la mia risposta solo sul titolo del tuo post, poiché non conosco C# e non ho capito la query data. Ma in MySQL ti suggerisco di provare le sottoselezioni. Per prima cosa ottieni una serie di chiavi primarie di colonne interessanti, quindi seleziona i dati da quelle righe:
SELECT somecolumn, anothercolumn
FROM sometable
WHERE id IN (
SELECT min(id)
FROM sometable
GROUP BY somecolumn
);