von Niels » Mo, 12.10.2009 11:49
Hallo Barlee,
Danke für Deinen Input.
Barlee hat geschrieben:
doppelte Einträge filtern
Das erreichst Du mit SELECT
DISTINCT * FROM ...
Nicht ganz, denn DISTINCT * vergleicht den ganzen Datensatz und so habe ich in der Abfrage wieder alle Daten. Ich brauche jedoch keine doppelten Werte in der Spalte Lage, wobei hier immer der Datensatz genommen werden muss, der den kleinsten TSI hat. Nun kann ich vielleicht ein DISTINCT "Lage" machen, dann bekomme ich nur die Lagen. Nun könnte ich mit einer JOIN-Abfrage wieder die restlichen Werte in einem weiteren View dazu basteln. Erschwerend kommt dazu, dass der Wert TSI auch leer sein kann, aber der leere Wert als größter TSI zu werten ist. Die Standard-Sortierung nimmt ihn erst einmal als Kleinsten.
Meine Internetrecherche zeigte, dass immer wieder empfohlen wird, den DISTINCT zu umgehen
Barlee hat geschrieben:Zur Info: Die Meldung
besagt, dass eine Aggregatfunktion
vermisst wird (dazu zählen z.B. SUM(), COUNT(), AVG())
Sagt mir das also, dass ich GROUP BY nur mit Aggregat-Funktionen verwenden kann
Niels
Hallo Barlee,
Danke für Deinen Input.
[quote="Barlee"]
[quote]doppelte Einträge filtern[/quote]
Das erreichst Du mit SELECT [b]DISTINCT[/b] * FROM ...[/quote]Nicht ganz, denn DISTINCT * vergleicht den ganzen Datensatz und so habe ich in der Abfrage wieder alle Daten. Ich brauche jedoch keine doppelten Werte in der Spalte Lage, wobei hier immer der Datensatz genommen werden muss, der den kleinsten TSI hat. Nun kann ich vielleicht ein DISTINCT "Lage" machen, dann bekomme ich nur die Lagen. Nun könnte ich mit einer JOIN-Abfrage wieder die restlichen Werte in einem weiteren View dazu basteln. Erschwerend kommt dazu, dass der Wert TSI auch leer sein kann, aber der leere Wert als größter TSI zu werten ist. Die Standard-Sortierung nimmt ihn erst einmal als Kleinsten.
Meine Internetrecherche zeigte, dass immer wieder empfohlen wird, den DISTINCT zu umgehen
[quote="Barlee"]Zur Info: Die Meldung
[code]Not in aggregate function or group by clause: ...[/code]besagt, dass eine Aggregatfunktion [b]vermisst[/b] wird (dazu zählen z.B. SUM(), COUNT(), AVG())[/quote]Sagt mir das also, dass ich GROUP BY nur mit Aggregat-Funktionen verwenden kann :shock:
Niels