(MySQL) Mehrere COUNT() in einer Abfrage?
muenzchen
- datenbank
Hallo!
Ich habe folgende Tabelle:
main_ID | ID
-------------
2 | 6
2 | 7
2 | 6
2 | 6
4 | 6
3 | 7
2 | 7
2 | 6
Nun möchte ich alle Datensätze mit der main_ID='2' abfragen und abzählen, wie oft in der Abfrage die einzelnen IDs vorkommen. In dem Fall also wie oft 6 und wie oft 7 vorkommen.
Ich habe beim besten Willen nicht den Hauch einer Idee.
Hoffe ihr könnt mir helfen.
MfG, muenzchen
Halihallo muenzchen
Nun möchte ich alle Datensätze mit der main_ID='2' abfragen und abzählen, wie oft in der Abfrage die einzelnen IDs vorkommen. In dem Fall also wie oft 6 und wie oft 7 vorkommen.
Ich habe beim besten Willen nicht den Hauch einer Idee.
Na, wie du auf main_ID=2 einschränken kannst, ist wohl klar (WHERE) und jetzt
interessiert dich, wieviele 7-ner und 6-er vorkommen? - Nun, dann gruppiere (GROUP BY)
sie zusammen und verwende die Agregatsfunktion COUNT...
Viele Grüsse
Philipp
Halihallo muenzchen
Nun möchte ich alle Datensätze mit der main_ID='2' abfragen und abzählen, wie oft in der Abfrage die einzelnen IDs vorkommen. In dem Fall also wie oft 6 und wie oft 7 vorkommen.
Ich habe beim besten Willen nicht den Hauch einer Idee.Na, wie du auf main_ID=2 einschränken kannst, ist wohl klar (WHERE) und jetzt
interessiert dich, wieviele 7-ner und 6-er vorkommen? - Nun, dann gruppiere (GROUP BY)
sie zusammen und verwende die Agregatsfunktion COUNT...Viele Grüsse
Philipp
Sorry, aber so gut bin ich noch nicht, dass ich das verstehe.
Ich kanns mir bis zum GROUP BY gut vorstellen, aber wie das dann mit COUNT funktionieren soll, das ich die Anzahl der 6 und 7 bekomme, weiß ich wirklich nicht. Wie soll COUNT die denn unterscheiden können?
Halihallo muenzchen
Sorry, aber so gut bin ich noch nicht, dass ich das verstehe.
Vielleicht habe ich's nicht. Ich denke, du willst folgendes:
main_ID | ID
2 | 6
2 | 7
2 | 6
2 | 6
4 | 6
3 | 7
2 | 7
2 | 6
dann nur die 2-er main_ID's
main_ID | ID
2 | 6
2 | 7
2 | 6
2 | 6
2 | 7
2 | 6
und dann die Anzahl aller 6-er und 7-er ID's
ID | COUNT
6 | 4
7 | 2
? - So richtig? - Denn dann...
Ich kanns mir bis zum GROUP BY gut vorstellen, aber wie das dann mit COUNT funktionieren soll, das ich die Anzahl der 6 und 7 bekomme, weiß ich wirklich nicht. Wie soll COUNT die denn unterscheiden können?
... ist es ganz einfach: Du Gruppierst nach ID ( GROUP BY ID ) und gibst dir dann nur
ID, COUNT(*) aus. Durch GROUP BY ID werden alle gleichen ID's zusammengezogen und man
erhält über COUNT(*) die Anzahl zusammengezogener "Zeilen", in deinem Falle die Anzahl
an gleichen ID's...
SELECT ID, COUNT(*)
FROM tabelle
WHERE main_ID='2'
GROUP BY ID
ORDER BY ID DESC
sollte das obengenannte SQL-ifizieren.
Viele Grüsse
Philipp
Ich denke, jetzt hab ichs kapiert, danke!
Ich werds mal ausprobieren.