Group By mit mehreren Spalten

Status
Nicht offen für weitere Antworten.

heidiweber

Aktives Mitglied
Hallo,

ich habe folgende Tabelle:

Code:
ID          var1       var2       var3       artikel    preis 
1	aaa1	aaa2	aaa3	tempo	36
1	aaa1	aaa2	aaa3	haus	51
1	aaa1	aaa2	aaa3	stecken	92
1	aaa1	aaa2	aaa3	blume	23
1	aaa1	aaa2	aaa3	auto	22
2	bbb1	bbb2	bbb3	computer	32
2	bbb1	bbb2	bbb3	heizung	56
2	bbb1	bbb2	bbb3	baum	46
2	bbb1	bbb2	bbb3	putz	65
3	ccc1	ccc2	ccc3	rasen	36
3	ccc1	ccc2	ccc3	fenster	47
3	ccc1	ccc2	ccc3	fernseher	47
3	ccc1	ccc2	ccc3	pulli	34
4	ddd1	ddd2	ddd3	fahrrad	87

Ich benötige var1, var2, var3, artikel des jeweiligen MAX(preis).

Das macht schon fast das:
select max(preis) from aggregieren GROUP BY id;

Nur wenn ich das probiere:
select var1, var2, var3, artikel, max(preis) from aggregieren GROUP BY id;

Kommt Fehlermeldung: Kein Group-By Ausdruck.

Nur wie macht man das?
Vielen dank
Grüße
Heidi
 

byte

Top Contributor
Nur wenn ich das probiere:
select var1, var2, var3, artikel, max(preis) from aggregieren GROUP BY id;

Kommt Fehlermeldung: Kein Group-By Ausdruck.

Bei einem GROUP BY darfst Du nur Spalten selektieren, auf die Du auch gruppierst oder Aggregatfunktionen (die gehen auf alle Spalten).

Du könntest es mit einem Subselect versuchen, z.B. so in der Art (ungetestet):

SQL:
select a1.var1, a1.var2, a1.var3, a1.artikel, 
(
   select max(a2.preis) 
   from aggregieren as a2 
   where a2.id = a1.id 
   group by a2.id
) 
from aggregieren as a1;
 

heidiweber

Aktives Mitglied
Hallo,

leider bringt der Select nicht das gewünschte Ergebnis.

Das kommt dabei heraus:

Code:
aaa1	aaa2	aaa3	tempo	92
bbb1	bbb2	bbb3	heizung	65
ccc1	ccc2	ccc3	pulli	47
ddd1	ddd2	ddd3	fahrrad	87
aaa1	aaa2	aaa3	auto	92
ccc1	ccc2	ccc3	fenster	47
aaa1	aaa2	aaa3	haus	92
bbb1	bbb2	bbb3	baum	65
aaa1	aaa2	aaa3	blume	92
aaa1	aaa2	aaa3	stecken	92
ccc1	ccc2	ccc3	rasen	47
bbb1	bbb2	bbb3	putz	65

Es werden alle Datensätze angezeigt - dazu der jeweilige MAX-Wert.

Ich benötige aber folgendes Ergebnis:
Code:
ID          var1       var2       var3       artikel    preis 
1	aaa1	aaa2	aaa3	stecken	92
2	bbb1	bbb2	bbb3	putz	65
3	ccc1	ccc2	ccc3	fernseher	47
4	ddd1	ddd2	ddd3	fahrrad	87

Jede ID nur einmal und den dazugehörigen MAX-Wert.

Vielen Dank
Grüße
Heidi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
thet1983 MySQL Error Code 1111: Invalid use of group function Datenbankprogrammierung 2
Gossi Oracle Problem mit group by... Datenbankprogrammierung 22
S SQL mit Group by Datenbankprogrammierung 3
Eldorado MySQL SELECT mit GROUP BY und INNER JOIN Datenbankprogrammierung 2
J SQL Problem mit Count + Group By Datenbankprogrammierung 7
N group by fehler Datenbankprogrammierung 4
J group by Datenbankprogrammierung 4
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
E SQLite Datenbank durchsuchen mit mehreren Suchbegriffen Datenbankprogrammierung 10
S MySQL Befüllen von mehreren Spalten Datenbankprogrammierung 1
I JPA Liste mit mehreren Entitäten Datenbankprogrammierung 22
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
D Oracle Funktion mit mehreren Out Parametern ausführen? Datenbankprogrammierung 3
L MySQL Datenbank beschreiben mit mehreren Threads Datenbankprogrammierung 18
0 Filtern nach mehreren Kriterien Datenbankprogrammierung 4
S Embedded DB, die aus mehreren JVMs gestartet werden kann? Datenbankprogrammierung 10
S Verständnisproblem mit mehreren DAOs Datenbankprogrammierung 7
S Verkettung von Spalteninhalten aus mehreren Zeilen Datenbankprogrammierung 10
D aus mehreren sql tabellen matchen und sortieren Datenbankprogrammierung 6
P [Hibernate] Zwischentabelle mit mehreren Feldern Datenbankprogrammierung 7
C Hibernate-Mapping bei mehreren FK´s auf die selbe Tabelle Datenbankprogrammierung 12
J JDBC mit mehreren Threads. Datenbankprogrammierung 8
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
OnDemand Daten auf mehrere Tabellen aufteilen oder Spalten nutzen Datenbankprogrammierung 2
P Derby/JavaDB JPA Reihenfolge Spalten ändern Datenbankprogrammierung 6
C PostgreSQL Anzahl der Spalten ermitteln Datenbankprogrammierung 2
E Wie kann man BLOB-Spalten in DB2 einfügen? Datenbankprogrammierung 9
E Kann man in DB2 Boolean Spalten erstellen? Datenbankprogrammierung 1
M JDBC Tabellen mit Boolean Spalten können nicht erstellt werden. DB Updaten - wie? Datenbankprogrammierung 6
D Aufteilung ähnlicher Spalten Datenbankprogrammierung 2
M DES und ASC auf verschiedene Spalten anwenden Datenbankprogrammierung 2
I Was ist besser: Tabellen oder Spalten Datenbankprogrammierung 1
V Hibernate und optionale Spalten? Datenbankprogrammierung 2
turmaline [HQL] Dynamische Spalten erzeugen Datenbankprogrammierung 14
R MySQL Unbenutzte Tabellen/Spalten herausfinden Datenbankprogrammierung 7
O DefaultTableModel Spalten ausblenden Datenbankprogrammierung 3
T Spalten einer SQL-Anfrage vorhersagen Datenbankprogrammierung 6
N Zwei Spalten und Ihre Werte vergleichen Datenbankprogrammierung 3
multiholle SQL Querry über mehrere Spalten Datenbankprogrammierung 12
G Spalten definieren Datenbankprogrammierung 5
A MSSQL - Spalten mit der Option: NULL zulassen Datenbankprogrammierung 2
thE_29 ResultSet und doppelte Spalten Datenbankprogrammierung 4
H Individuelle Datenbankfelder/-spalten wie realisieren? Datenbankprogrammierung 3
W Anzahl der Spalten eines ResultSets bestimmen Datenbankprogrammierung 5
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G Spalten Namen auslesen und Zeilen daten auslesen Datenbankprogrammierung 17
G maximale Länge von Spalten ermitteln Datenbankprogrammierung 3
M Maximum aus verschiedenen Spalten Datenbankprogrammierung 2
J Alle Spalten und Zeilen eines ResultSets ausgeben ? Datenbankprogrammierung 2
R getString() auf double-Spalten(DECIMAL) Nachkommastellen weg Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben