Tengo una tabla con elementos de usuario. Cada usuario puede tener varios tipos de artículos, y puede tener cada elemento más de una vez. Quiero ver cuántos artículos de cada tipo tiene cada usuario. Así que utilizo la siguiente consulta:¿Cómo puedo limitar el número de resultados por una columna específica en postgreSQL?
select user_name, count(item_name) as "count_item", item_name
from my_table
group by user_name, item_name
order by user_name, count_item desc;
por lo que obtener algo como esto:
user_name | count_item | item_name
----------+-------------+-----------
User 1 | 10 | item X
User 1 | 8 | item Y
User 2 | 15 | item A
User 2 | 13 | item B
User 2 | 7 | item C
User 2 | 2 | item X
etc.
Ahora, quiero ver sólo los primeros 3 artículos de cada usuario . En el ejemplo anterior, para el Usuario 1, quiero ver el elemento X e Y, y para el Usuario 2, quiero ver los elementos A, B y C.
¿Cómo puedo lograr esto?
Gracias!
+1 para preguntar con un ejemplo de datos y el resultado esperado. –