2016-02-18 29 views
6

Tôi có một bảng trong sqlite. Tôi đang cố gắng để có được hàng đầu tiên của mỗi nhóm. Mặc dù có những câu hỏi trước đó về vấn đề này. Tôi không thể tìm thấy giải pháp trong sqlite.Chọn hàng đầu tiên trong mỗi nhóm sử dụng nhóm theo sqlite

bảng của tôi trông như thế này:

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 

Tôi muốn truy vấn đầu tiên của MaxOfStatecountpercent và đầu tiên của STATECODE từ mỗi statepoolnumber. Tương đương truy vấn truy cập sql là:

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

Và sản lượng dự kiến ​​là:

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

Tôi đã thử với "giới hạn 1" nhưng đã không làm việc. Làm thế nào tôi có thể nhận được một truy vấn tương đương trong sqlite?

Trả lời

8

Các công trình sau đây cho tôi với bảng dữ liệu mẫu của bạn:

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

này giả định rằng, dựa trên đầu vào mong muốn của bạn, bạn muốn 'đầu tiên' trạng thái của mỗi nhóm statepoolnumber là kỷ lục đầu tiên (chứ không phải hơn 'đầu tiên' theo thứ tự bảng chữ cái).

+0

Truy vấn này hoạt động theo câu hỏi của tôi – User1090

+0

'HAVING MIN (ROWID)' không hoạt động nếu rowid bằng 0. –

+0

Truy vấn tương đương có thể trả lời câu hỏi của tôi là gì? – User1090

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