Mehere Group By Klausel möglich ?
-
Hi,
irgendwie bekomm ich keine zwei group by klausels hin.
Gibt es da bestimmte syntax regeln ?
Wäre nett wenn jemand mir da informationen geben könnte bzw. Links
Ciao
-
einfach bei dem GROUP BY mehrere Spalten angeben:
... GROUP BY spalte1, spalte2 ...
-
Hm, kann ich dann zb. eine zwei Bedingung für die zwei Group by klausel angeben. zb. nur die einträge mit der ID=1 ?
Sowas in der Art will ich haben:
(Funktioniert NICHT !! )Select tb1.*, COUNT(tb2.feld1) AS cnt_a, COUNT(tb2.feld2) AS cnt_b from tb1 left join tb2 ON tb1.id = tb2.tb1_id GROUP BY tb2.tb1_id, tb2.feld1
"COUNT(tb2.feld2) AS cnt_b" soll die anzahl der Einträge speichern die der Bedingung "ON tb1.id = tb2.tb1_id" gerecht wird.
So alles schön und gut. Nur will ich jetzt parallel einen zweiten Counter in der gleichen Tabelle (tb2), die Einträgen makieren, welche die ID x(zb.1) und der Bedingung "ON tb1.id = tb2.tb1_id" gerecht werden.
Ist solch ein Counter parallel möglich ?
Ciao
-
Ich habe gerade ein wenig rumexperimentiert, aber leider so auf Anhieb auch keine Lösung gefunden sowas mit einem einzigen SELECT zu lösen.
-
Ok, vielen Danke für deine Mühe !
Hier kann man doch die Grenzen von Mysql deutlich sehen.
unter SQL wäre das natürlich kein Problem gewesen.
Ciao
-
Nur weil ich keine Lösung gefunden habe, muss das noch lange nicht heißen, dass es keine gibt - denn so gut kenne ich mich mit MySQL auch wieder nicht aus
-
Dann zeig mal wie das unter "SQL" geht.
Hab mir die Datenbank "SQL" mal intstalliert. Die ist wirklich super. Um vieles besser als MySQL mit seiner Abfragesprache.Dein Problem könntest du mit UNION lösen. Manchmal macht es aber mehr Sinn nicht so komplexe SQL-Abfragen zu erstellen und an das RDBMS zu senden da bei manchen Datensätze die Verarbeitung des Querys länger dauert als 2 Abfragen zu machen.
-
Unix-Tom schrieb:
Dann zeig mal wie das unter "SQL" geht.
Ich hab das jetzt bezüglich den Tranaktionen gemeint, die unter Mysql nicht möglich sind.
Unix-Tom schrieb:
Hab mir die Datenbank "SQL" mal intstalliert. Die ist wirklich super. Um vieles besser als MySQL mit seiner Abfragesprache.
Du meinst sicherlich eine andere Datenbank als Mysql, welche die SQL verwendet.
Besonders die geschwindigkeit ist SuperUnix-Tom schrieb:
Dein Problem könntest du mit UNION lösen. Manchmal macht es aber mehr Sinn nicht so komplexe SQL-Abfragen zu erstellen und an das RDBMS zu senden da bei manchen Datensätze die Verarbeitung des Querys länger dauert als 2 Abfragen zu machen.
Hm, ja ich glaub diesbezüglich hast du recht.!
-
JayJay schrieb:
Unix-Tom schrieb:
Dann zeig mal wie das unter "SQL" geht.
Ich hab das jetzt bezüglich den Tranaktionen gemeint, die unter Mysql nicht möglich sind.
Du weißt aber schon was Transactionen sind? Auch mit Transaction geht das so nicht. Transaction ist für was anderes da.
MySQL unterstützt übrigend auch Transaction. Dafür gibt es sogar einen eigenen Tabellentyp.JayJay schrieb:
Unix-Tom schrieb:
Hab mir die Datenbank "SQL" mal intstalliert. Die ist wirklich super. Um vieles besser als MySQL mit seiner Abfragesprache.
Du meinst sicherlich eine andere Datenbank als Mysql, welche die SQL verwendet.
Besonders die geschwindigkeit ist SuperDu kannst mir glauben das ich weiß wovon ich spreche. Lt. deinem Posting ist SQL um einiges besser als MySQL. Was glaubst du warum MySQL diesen Namen hat? Sicher nicht weil die Abfragesprache von MySQL SQL ist.
SQL ist die Abfragesprache vieler RDBMS. MySQL ist ein RDBMS. SQL kann also nicht besser sein als MySQL weil das eine ein Apfel und das andere eine Birne ist.