Wenn dies Ihr erster Besuch hier ist,
lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen
durch. Sie müssen sich vermutlich registrieren,
bevor Sie Beiträge verfassen können. Klicken Sie oben auf 'Registrieren', um den Registrierungsprozess zu
starten. Sie können auch jetzt schon Beiträge lesen. Suchen Sie sich einfach das Forum aus, das Sie am meisten
interessiert.
Zitat Tom Kyte:
I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.
Die Frage ist, wenn ich die Spalte WarenOrt als Index in der Tabelle Waren setze(was auch sehr unsinn klingt), ob "Group by" noch funktioniert? Order anders gesagt, ob es ist möglich "Group by" ein Spalte als Index zu verwenden?
ein Index hat nie Auswirkungen auf das Ergebnis eines SQLs, er hat (meistens) Auswirkungen auf die Laufzeit - sowohl positive als auch negative je nachdem was man so treibt.
Allerdings ist dein SQL nicht valide. Ich vermute, Du verwendest Mysql in einer Version <5.0.
Daher macht mysql aus deiner Query folgendes:
Select WarenSumme
From Waren
Group by WarenOrt,warensumme
Jedes Feld, dass nicht in einer Aggregatsfunktion vorkommt (z.B. SUM,COUNT,AVG etc.) muss auch ins GROUP BY mysql "vertuscht" deinen Fehler einfach nur und mogelt intern das Feld wieder dazu.
Jede andere Datenbank wie msssql, DB2 Oracle oder auch mysql ab version 5 würde Dein SQL überhaupt nicht mehr ausführen.
Da du aber keine Aggegatsfuktion verwendest, macht dein GROUP BY nichts anderes als dass es doppelte Einträge rauswirft.
Um das zu erreichen gibt es die Funktion DISTINCT, mit der dann auch jeder gleich weiß was Du machen möchtest:
Zitat Tom Kyte:
I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.
Comment