Recentemente ho trovato che SQLite non supporta la clausola DISTINCT ON()
che sembra specifica per Postgresql. Per esempio, se ho tabella t
con colonne a
e b
. E voglio selezionare tutti gli elementi con distinti b
. La seguente query è l'unico e il modo corretto per farlo in SQLite? DatiDISTINCT clausola in SQLite
select * from t where b in (select distinct b from t)
Esempio:
a | b
__|__
1 5
2 5
3 6
4 6
quello che mi aspetto in cambio:
a | b
__|__
1 5
3 6
Quella interrogazione restituirà sempre tutte le righe da t , poiché ogni b in t fa parte di (selezionare distinto b da t). Forse puoi chiarire un po 'di più quello che stai cercando di fare e fornire alcuni dati di esempio e risultati attesi? – dcp
A meno che non spieghi perché '(1,5)' è nel tuo set di risultati atteso mentre '(2,5)' non lo è (e perché è esattamente così, e non viceversa), questo sarà difficile rispondere. – Tomalak
Qualsiasi constrait farà. Minimo, massimo, ecc. Supposto che la query reale abbia bisogno di colonne aggiuntive su DISTINCT solo se tali dati hanno un significato - per esempio, le colonne aggiuntive sono le stesse per le stesse colonne DISTINCT. – grigoryvp