2009-07-14 34 views

Trả lời

13

sqlite không mạnh trong xử lý phân tích nhưng nếu dữ liệu của bạn không phải là rất lớn, bạn có thể cố gắng bắt chước phần trăm với ORDER BY, LIMIT 1 và một được tính OFFSET. Lưu ý rằng OFFSET là không dựa trên, do đó bạn cần phải điều chỉnh nó theo một.

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ạn có ý nghĩa gì với dữ liệu "lớn"? Phạm vi nào là giải pháp ở đây tốt cho về số hàng dữ liệu trong bảng? Và bạn có thể xây dựng trên phần bù đắp về cách bạn tính toán điều đó không? – David

+0

Tôi không có ý tưởng về phạm vi kích thước dữ liệu. Nếu nó làm việc cho bạn, tốt. Mức chênh lệch là để chọn hàng ở 90% dữ liệu được sắp xếp theo chiều cao - có truy vấn khác để truy xuất 'male_count'. – laalto

Các vấn đề liên quan