Cheatah: (MySQL) Abfrage-Problem mit zwei Distincts

Beitrag lesen

Hi,

select distinct abstimmung,count(*) as anzahl from abstimmung group by abstimmung order by anzahl DESC

Du gruppierst hier nach abstimmung, reduzierst jede Gruppe auf die Anzahl der Zeilen und den Gruppenbezeichner, also jeweils exakt einen Datensatz, und holst Dir dann nur die verschiedenen Gruppenbezeichner, von denen jeder ohnehin nur einmal vorkommt.

Soll heißen: Das DISTINCT hat hier absolut keinen Effekt. Lass es weg.

Jetzt würd ich aber noch gerne ein weiteres Feld in das Distinct einbeziehen.

Nein, das möchtest Du nicht; Du möchtest es in das GROUP BY einbeziehen. Und das kannst Du ohne weiteres machen. Füge den Gruppenbezeichner auch der SELECT-Liste zu, damit Du erkennst, was da eigentlich passiert.

Ich möchte, dass nur eine Abstimmung pro Ident gezählt wird.

Und welche? Das musst Du der DB schon mitteilen; sie macht nicht einfach "irgendwas".

select distinct abstimmung,count(*) as anzahl from abstimmung group by abstimmung,ident order by anzahl DESC

wirft für mich nicht nachvollziehbare Ergebnisse nach sich.

Es wird Dir so viele Ergebnisse liefern, wie es Kombinationen von abstimmung und ident gibt. Da Du ident nicht mitselektierst, siehst Du natürlich keinen Unterschied.

Cheatah