vendredi 23 janvier 2015

select top n record from each group sqlite

I am trying to select top 2 records from a database table result that looks like this



SubjectId | StudentId | Levelid | total
------------------------------------------
1 | 1 | 1 | 89
1 | 2 | 1 | 77
1 | 3 | 1 | 61
2 | 4 | 1 | 60
2 | 5 | 1 | 55
2 | 6 | 1 | 45


i tried this query



SELECT rv.subjectid,
rv.total,
rv.Studentid,
rv.levelid
FROM ResultView rv
LEFT JOIN ResultView rv2
ON ( rv.subjectid = rv2.subjectid
AND
rv.total <= rv2.total )
GROUP BY rv.subjectid,
rv.total,
rv.Studentid
HAVING COUNT( * ) <= 3
order by rv.subjectid desc


but some subjects like where missing, i even tried the suggestiong frm the following link


sqlite: how to select first N row of each group?


but i get more that two for each subjectid


what am i doing wrong?


Aucun commentaire:

Enregistrer un commentaire