Abfrage: zeige 10 User mit den meisten Nachrichten

qsrs

Erfahrenes Mitglied
Hallo zusammen,

ich benötige Hilfe zu einer Abfrage. In einer Tabelle speichere ich Nachrichten von Usern zu anderen Usern. Ich benötige eine Art Top 10 Liste mit Usern, welche die meisten Nachrichten geschrieben haben.

1. Hans Petrich - 50 Nachrichten
2. Anabell Mustermann 45 Nachrichten
...

Meine Tabelle beinhaltet die ID des Users, die Nachrichten-ID, die Nachricht usw.

Ich habe es schon mit MAX() versucht, leider kam ich nicht weiter. Vielen Dank für eure Hilfe.
 
Hallo,

da du nicht geschrieben hast für welches DBMS du ein Beispiel bräuchtest, habe ich das Beispiel mit Oracle und MySQL erstellt.

schau mal hier:

Setup:
SQL:
create table messages(
  id number(10),
  sender number(10)
);


insert into messages values(1,1);
insert into messages values(2,1);
insert into messages values(3,1);
insert into messages values(4,1);
insert into messages values(5,2);
insert into messages values(6,2);
insert into messages values(7,1);
insert into messages values(8,1);
insert into messages values(9,1);
insert into messages values(10,3);
insert into messages values(11,3);
insert into messages values(12,2);
insert into messages values(13,4);

Abfrage: (Oracle)
SQL:
select 
  * 
from (
  select sender, count(*) msg_count from messages group by sender order by msg_count desc
  ) 
where 
  rownum <= 3 --in diesem Beispiel Top 3
order by 
  msg_count desc;

Wenn man die Ausgabe der Zeilen unter mysql limitieren möchte schreibt man:

Abfrage: (Mysql)
SQL:
select sender, count(*) msg_count from messages group by sender order by msg_count desc limit 3  --in diesem Beispiel Top 3


Ergebnis:
Code:
    SENDER MSG_COUNT
---------- ---------
         1         7 
         2         3 
         3         2

An diese Tabelle musst du nun nur noch über "sender" (userid) die Daten aus der entsprechenden User Tabelle dazu joinen.

Gruß Tom
 
Entschuldige, die Frage bezog sich auf MySQL. Vielen Dank für deine Hilfe, ich konnte es bereits umsetzen.
 

Neue Beiträge

Zurück