2009-07-14 13 views

Antwort

13

SQLite nicht stark in der analytischen Verarbeitung ist aber, wenn Ihre Daten nicht sehr groß ist, können Sie versuchen, Perzentil mit ORDER BY, LIMIT 1 und zu emulieren berechnet OFFSET. Beachten Sie, dass OFFSET nullbasiert ist. Sie müssen es also um eins anpassen.

SELECT 
    height AS 'male 90% height' 
FROM table 
WHERE gender='male' 
ORDER BY height ASC 
LIMIT 1 
OFFSET (SELECT 
     COUNT(*) 
     FROM table 
     WHERE gender='male') * 9/10 - 1; 
+0

Was meinen Sie mit "großen" Daten? In welchem ​​Bereich ist die Lösung für die Anzahl der Datenzeilen in der Tabelle gut? Und können Sie näher auf den Offset-Anteil eingehen, wie Sie das berechnen? – David

+0

Ich habe keine Ahnung über den Datengrößenbereich. Wenn es für dich funktioniert, gut. Der Offset dient zum Auswählen der Zeile bei 90% der nach Höhe sortierten Daten - es gibt die andere Abfrage zum Abrufen von 'Male_Count'. – laalto