Ich habe eine Tabelle mit Benutzerelementen. Jeder Benutzer kann mehrere Arten von Gegenständen haben und kann jeden Gegenstand mehr als einmal haben. Ich möchte sehen, wie viele Elemente jedes Typs jeder Benutzer hat. So verwende ich die folgende Abfrage:Wie kann ich die Anzahl der Ergebnisse durch eine bestimmte Spalte in postgreSQL begrenzen?
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;
So bekomme ich so etwas wie dieses:
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
usw.
Nun, ich möchte, dass jeder Benutzer nur die ersten 3 Artikel von sehen . Im obigen Beispiel möchte ich für Benutzer 1 die Elemente X und Y sehen, und für Benutzer 2 möchte ich die Elemente A, B und C sehen.
Wie kann ich dies erreichen?
Danke!
+1 für die Abfrage mit einem Datenbeispiel und erwartetem Ergebnis! –