sql mixing of group columns
-
hallo
ich habe folgendes problem ich hoffe jemand kann mir weiter helfen
SELECT COUNT(*) AS anzahl
FROM kunde
WHERE plz LIKE "4%";antwort: sql mixing of group columns (min(),max() usw
ich dachte bei einem einzeiler macht nix aus muss man denn unbedingt gruppenieren bei jeder aggregationfkt
im vorraus danke
-
Na wenn Dein RDBMS erfordert dann wirst Du es machen müssen.
Wenn man sich an SQL-Standard hält dann musst Du Gruppieren denn mein Verständnis ist: Wie soll das RDBMS wissen was Du möchtest. Es liefert Dir eine Tabelle mit LIKE '4%' aus PLZ und dann möchtest DU auf einmal einen Count().
Der liegt aber nicht vor denn RDBMS geht i.R. von hinten nach vorne.
Dies alles vermutlich aus Tempogründen.
Es muss eben nur gezählt werden und nicht eine Liste erstellt werden.
-
also normalerweise müsste das gehen. bei mir (sql server 2005) klappt das auch.
gruppieren musst du meines wissens nur, wenn du
a) eine aggregatsfunktion nutzt(wie count, min oder avg)
b) gleichzeitig im select noch mindestens ein weites feld selektierstdas ist dann nötig, damit er weiss, wie er die anderen felder, die er ausgeben zusammenfassen soll. du gibst aber nur das ergebniss von count aus, nichts weiter.
du sagst ihm:
1. hole alle datensätze raus, auf die like 'blabla' passen
2. zähle die anzahl der datensätze, die du in punkt 1 bekommen hastwas für ein db-system nutzt du denn?