2009-07-14 10 views

cevap

13

sqlite analitik işleme güçlü değil ancak verileriniz çok büyük değilse, sen ORDER BY, LIMIT 1 ve birlikte persentili taklit deneyebilirsiniz hesaplanan OFFSET. OFFSET'un sıfır temelli olduğunu ve bu nedenle bir tane ayarlamanız gerektiğini unutmayın.

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

"Büyük" verilerden ne demek istiyorsunuz? Buradaki çözüm, tablodaki veri satırlarının sayısı açısından ne kadar iyi? Ve bunu nasıl hesapladığınla ilgili ayrıntısına bakabilir misin? – David

+0

Veri boyutu aralığı hakkında hiçbir fikrim yok. Eğer senin için çalışıyorsa, iyi. Uzaklık, sırasına göre sıralanmış olan verilerin% 90'ındaki satırı seçmek içindir - 'male_count' öğesini geri almak için başka bir sorgu var. – laalto