2016-02-18 12 views
6

Ho una tabella in sqlite. Sto cercando di ottenere la prima riga di ogni gruppo. Sebbene ci fossero precedenti domande riguardanti lo stesso. Non sono riuscito a trovare una soluzione in sqlite.Selezionare la prima riga di ogni gruppo utilizzando il gruppo di in sqlite

Il mio tavolo si presenta così:

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 

vorrei interrogare il primo di MaxOfStatecountpercent e prima di STATECODE da ogni statepoolnumber. La query SQL accesso equivalente è:

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

E il risultato atteso è:

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

ho provato con "limite di 1", ma non ha funzionato. Come posso ottenere una query equivalente in sqlite?

risposta

8

le seguenti opere per me con i miei dati tabella di esempio:

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

Questo presuppone che, sulla base di input desiderato, si desidera che lo stato di 'prima' di ogni gruppo statepoolnumber di essere il primo record (piuttosto di "primo" in ordine alfabetico).

+0

Questa query funziona come da mia domanda – User1090

+0

'HAVING MIN (ROWID)' non funziona se il rowid è zero. –

+0

Quale può essere la query equivalente che risponderebbe alla mia domanda? – User1090

Problemi correlati