Seite 1 von 1

SQL Abfrage : Doppelte aussortieren

Verfasst: 03.09.2008 10:40
von Bisonte
Wie der Titel schon sagt...

Nehmen wir an, meine DB hat 3 Felder in einer Tabelle:

Daten -> Spiel, User, Punkte

So nun habe ich viele datensätze zum. Bsp.

Daten -> Game1, Bisonte, 100
Daten -> Game1, Bisonte, 123
Daten -> Game1, Bisonte, 55
Daten -> Game1, PB-Spieler, 130

Also hat die DB ja nur 2 verschiedene User in ihren ganzen Datensätzen.

Wie muss die SQL Abfrage aussehen um das rauszukriegen, bzw das jeder User nur einmal angezeigt wird ? Oder geht das gar nicht ?

Also "SELECT * FROM Daten ...." oder ist das anders ?

Re: SQL Abfrage : Doppelte aussortieren

Verfasst: 03.09.2008 10:44
von Kiffi

Code: Alles auswählen

Select User From Daten Group By User
Grüße ... Kiffi

Verfasst: 03.09.2008 10:46
von Bisonte
Das war flink... gleichmal austesten ;) merci

Verfasst: 03.09.2008 11:41
von bobobo
für ne Auflistung der User wäre das ok

Code: Alles auswählen

Select distinct User from Tabelle
hätte es aber auch dafür getan.


Gruppierungen funktionieren meist nur mit Aggregationen (COUNT,SUM,MAX etc.) und machen auch nur dort so richtig
Sinn

also z.B.

Code: Alles auswählen

select avg(Punkt),User,game from Tabelle group by user,game
listet die gemittelten Punkte pro User und Game

Verfasst: 03.09.2008 11:59
von Bisonte
Nunja... diese Sequenzen sehe ich zum ersten mal ;)

Aber gut, würde dieses Distinct auch funtionieren, wenn ich neben dem User auch gleichzeitig noch das Game haben will ?

Im Moment funktioniert

Code: Alles auswählen

SELECT Spiel, User From Daten Group By User ORDER BY User ASC
wunderbar.

Wie müsste dann dieser distinct krams aussehen ?

Weil das ist hier ja nur eine Beispielsache, meine DB hat viel mehr Felder und Tables.... ich hab bei den Usern z.b. noch eine UserID, die ich dann natürlich auch rauskriegen müsste...

Edit: Habs schon...

Code: Alles auswählen

Select distinct SpielerID, Spielername, usw From Daten WHERE Spiel='Game1'
funktioniert wie ich es mir gedacht habe...

Verfasst: 03.09.2008 19:23
von bobobo
na siehste

"distinct" heisst "unterscheidbar" und das bedeutet dann eben in deinem Code dass nur unterscheidbare Ergebnisssätze angezeigt werden.