Filtering results in SQL -
say have table follows:
right | group_id | score 1 1 5.6 0 1 3.1 0 1 -1.5 0 1 7 1 2 4.3 0 2 55.8 0 1 -6
how sort group (so group 1's together, 2's etc..) sort score. (something order group_id, score). want filter out top 3 results each group. i.e resulting table be:
right | group_id | score 0 1 7 1 1 5.6 0 1 3.1 0 1 7 1 2 55.8 0 2 4.3
thanks!
using ansi sql, can do:
select right, group_id, score (select t.*, dense_rank() on (partition groupid order score desc) seqnum t ) t seqnum <= 3 order groupid;
Comments
Post a Comment