2016-02-18 12 views
6

Ich habe eine Tabelle in SQLite. Ich versuche, die erste Reihe jeder Gruppe zu bekommen. Obwohl es früher ähnliche Fragen gab. Ich konnte keine Lösung in SQLite finden.Wählen Sie die erste Zeile in jeder Gruppe mit der Gruppe von in sqlite

Meine Tabelle sieht wie folgt aus:

select * from geoview 
MaxOfStatecountpercent | statepoolnumber | STATECODE 
123      1234    CA 
123      1234    FL 
234      1678    TX 
234      1678    MN 
234      0987    FL 
234      0987    CA 
234      9876    TX 

ich die erste von MaxOfStatecountpercent und von jedem statepoolnumber von state ersten abfragen möchten. Die äquivalente Zugriff SQL-Abfrage ist:

select first(MaxOfStatecountpercent), statepoolnumber, first(STATECODE) from geoview group by statepoolnumber; 

Und der Ausgang erwarten ist:

First(MaxOfStatecountpercent) | statepoolnumber | First(STATECODE) 
123        1234    CA 
234        1678    TX 
234        0987    FL 
234        9876    TX 

ich mit "limit 1" versucht, aber hat nicht funktioniert. Wie kann ich eine Abfrageäquivalent in SQLite bekommen?

Antwort

8

Die folgenden Werke für mich mit Tabellendaten Beispiel:

SELECT MaxOfStatecountpercent, statepoolnumber, STATECODE 
FROM geoview 
GROUP BY statepoolnumber 
HAVING MIN(ROWID) 
ORDER BY ROWID 

Dies setzt voraus, dass, basierend auf Ihren gewünschten Eingang, können Sie den ‚ersten‘ Zustand jeder statepoolnumber Gruppe den ersten Datensatz sein wollen (und nicht als "zuerst" in alphabetischer Reihenfolge).

+0

Diese Abfrage funktioniert nach meiner Frage – User1090

+0

'HAVING MIN (ROWID)' funktioniert nicht, wenn die Rowid Null ist. –

+0

Was kann die äquivalente Abfrage sein, die meine Frage beantworten würde? – User1090

Verwandte Themen