कुछ इस तरह:
select *
from (
select userid,
letter,
dense_rank() over (partition by userid order by count(*) desc) as rnk
from letters
group by userid, letter
) t
where rnk <= 2
order by userid, rnk;
ध्यान दें कि मैंने user
. को बदल दिया है userid
. के साथ क्योंकि कॉलम के लिए आरक्षित शब्दों का प्रयोग करना एक बुरी आदत है।
यहाँ एक SQLFiddle है:http://sqlfiddle.com/#!12/ec3ec/1ए>