MySQL Suche nach Max Value in einer Tabelle

DefconDev

Bekanntes Mitglied
Hallo zusammen,
die Überschrift ist etwas simpler als es mein Problem darstellt.

Code:
ID-----playerID-----nationID-----victories
1           1            1            4
2           1            2            0
3           1            3            2
4           2            1            1
5           2            2            7
6           2            3            0

Code:
SELECT *, MAX(`victories`) as `testMax` FROM `nation_stats` GROUP BY `nationID` ORDER BY MAX(`victories`) DESC

Wenn ich das richtig sehe gibt mir diese Abfrage zwar die max werte für jede nationID korrekt heraus aber ich kann leider nicht einsehen welche playerID dahinter steckt, zurzeit zeigt er mir bei genau dieser abfrage nur playerID 1 an.

Ziel ist es aber zu ermitteln welcher player bei jeder nationID den höchsten victory wert besitzt.
 

stg

Top Contributor
Zuerst, wie du es auch schon gemacht hast, fragst du die maximale Anzahl der Siege je Nation ab (mit Max und Group By). Danach joinst du das Ergebnis nocheinmal auf die ursprüngliche Tabelle, um die fehlendenen Werte zu erhalten.
 

Dukel

Top Contributor
Meines Wissens musst du alle Felder gruppieren, die du im Select abfrägst.
Geht evtl. folgendes?
Code:
SELECT ID, MAX(`victories`) as `testMax` FROM `nation_stats` GROUP BY `nationID`,`ID` ORDER BY MAX(`victories`) DESC
Ein Select * ist generell schlecht.
 

stg

Top Contributor

DefconDev

Bekanntes Mitglied
Code:
select * from nation_stats where victories =
(select max(victories) from nations_stats)

Der spuckt mir leider nur das Ergebnis der jenigen SpielerID mit dem höchsten Wert, in meinem Fall waren dass zwei SpielerIDs mit den selben victory Werten.

Den Versuch nach dem Result ein Join hinzubekommen, scheiterte leider kläglich.

Muss ich vor dem Join die selbe Tabelle mit sich selber joinen. Also mit dem Muster
Code:
SELECT
    c1.city, c1.customerName, c2.customerName
FROM
    customers c1
        INNER JOIN
    customers c2 ON c1.city = c2.city
        AND c1.customername <> c2.customerName
ORDER BY c1.city;

Ich muss leider zugeben, dass meine Kentnisse in SQL sehr rudimentär aufgestellt sind.
 

stg

Top Contributor
Dann nochmal ausführlich:

Zuerst fragst du die maximale Anzahl an Siegen je Nation ab:
Code:
select NATIONID, MAX(VICTORIES) FROM NATION_STATS GROUP BY NATIONID

Als Resultat erhälst du
Code:
  NATIONID MAX(VICTORIES)
---------- --------------
         1              4
         2              7
         3              2

Dann der JOIN auf die ursprüngliche Tabelle, um auch die fehlenden Informationen zu erhalten:
Code:
SELECT a.NATIONID, a.VICTORIES, b.PLAYERID, b.ID 
FROM (
    SELECT NATIONID, MAX(VICTORIES) AS VICTORIES FROM NATION_STATS GROUP BY NATIONID
) a
INNER JOIN NATION_STATS b 
ON a.NATIONID = b.NATIONID AND a.VICTORIES = b.VICTORIES

Dann bekommst du:
Code:
  NATIONID  VICTORIES   PLAYERID         ID
---------- ---------- ---------- ----------
         1          4          1          1
         3          2          1          3
         2          7          2          5
 

DefconDev

Bekanntes Mitglied
Vielen Dank für deine Mühen! Hat funktioniert, habe jetzt weitere joins vorgenommen um die Namen der nationIDs und playerIDs hinzuzufügen.

Andere Frage, könnte man noch erzwingen maximal nur einen Eintrag pro nationID zu zeigen, der den höchsten Wert besitzt? Zur Zeit könnte pro nationID auch mehrere playerID angezeigt werden, sollten die playerIDs ebenso viele victories haben.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M SQLite Suche nach String Datenbankprogrammierung 4
AssELAss Oracle Suche nach Umlauten Ä und Ae ermöglichen Datenbankprogrammierung 11
M sql-code für suche in tabelle nach höchster transaktionsnr Datenbankprogrammierung 12
R MySQL Syntax für suche nach Textteil Datenbankprogrammierung 8
L SQL-Suche Datenbankprogrammierung 2
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
H suche eine Login system Bibliothek für Java Datenbankprogrammierung 5
R Suche den nächsten timestamp Datenbankprogrammierung 5
K JPA Suche Datenbankprogrammierung 14
J SELECT Abfrage/Suche Datenbankprogrammierung 4
AssELAss Oracle Wildcard-Suche über zwei Felder Datenbankprogrammierung 5
ARadauer Umgekehrte Suche mit Wildcards Datenbankprogrammierung 4
N suche embedded key-value-datenkank Datenbankprogrammierung 2
Screen Ich suche eine SQLDatenbank ohne JDBC-Treiber Datenbankprogrammierung 12
F suche Erstanschub für DB-Zugriff Datenbankprogrammierung 9
fastjack Kombinierte Suche und verschiedene Datumsformate Datenbankprogrammierung 2
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
A Suche Datenbankprogrammierung 4
U Suche OpenSource Projekt ? Datenbankprogrammierung 9
J Suche geeignete Datenbankstruktur Datenbankprogrammierung 3
H Suche ein Hibernate-DAO-Gerüst zum lernen Datenbankprogrammierung 9
J Suche für meine Anwendung optimale Datenbank ! Datenbankprogrammierung 26
S LIKE - Suche in DB Datenbankprogrammierung 18
F Suche JDBC-Treiber-Installationsanleitung (SUSE Linux) Datenbankprogrammierung 18
F suche MySQl-Befehl um Datensatz an Tabellenende zu schreiben Datenbankprogrammierung 2
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
ruutaiokwu SQL-Dump nach MariaDB laden? Datenbankprogrammierung 6
T JPA: Nach String statt Primärschlüssel suchen Datenbankprogrammierung 9
Thallius MySQL jdbc schließt Verbindung nach vielen Request von selber Datenbankprogrammierung 8
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
G PostgreSQL Nach Monaten auf einmal ClassNotFound-Exception Datenbankprogrammierung 3
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
J SQLite Datenverlust nach beenden des Programmes Datenbankprogrammierung 21
J Fehlende DatenbankView nach einbeziehen von JDBC Datenbankprogrammierung 3
B Leerzeichen nach Umlaut -> Sichtbar erst nach Query! Datenbankprogrammierung 6
D Zeit von SQL nach Java Datenbankprogrammierung 2
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
G HSQLDB Inserts/Updates sind nach Neustart der Anwendung Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
Z PDF nach Formate sortieren Datenbankprogrammierung 3
A Nach Export mysql Verbindung zur Datenbank nicht möglich, was tun? Datenbankprogrammierung 7
F Java SQL Syntax Error erst nach mehrmaligen Aufrufen Datenbankprogrammierung 3
R vor/nach INSERT mysql-SETS absetzen Datenbankprogrammierung 2
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
E Abfrage nach existierender SQL-Tabelle Datenbankprogrammierung 7
P MySQL Verbindung nach außen sehr langsam Datenbankprogrammierung 4
S Nochmals: ID ermitteln nach Insert Datenbankprogrammierung 2
P JPA- Entities bleiben nach dem Löschen (unsichtbar?) in der Datenbank Datenbankprogrammierung 6
GianaSisters MS SQL unter Netbeans OK - nach konvertieren Absturz Datenbankprogrammierung 6
R SQL Abfrage, je nach ausgewählten Parametern Datenbankprogrammierung 11
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
M Datenbankeintrag bleibt nach Löschen in JSP vorhanden Datenbankprogrammierung 8
0 Filtern nach mehreren Kriterien Datenbankprogrammierung 4
T filtern nach expliziten Worten trotz LIKE '%Wort%' Datenbankprogrammierung 2
E Nach Server wechsel Datenbank fehler ?!? Datenbankprogrammierung 3
F SQL ordnen nach zueinander in Verhältnis gesetzten Spaltenwerten Datenbankprogrammierung 11
J SQL: Sortierung nach Wortlänge Datenbankprogrammierung 2
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
T JPA: NullPointerException nach persist Datenbankprogrammierung 3
T Eintragung in einer Spalte nach Abfrage Datenbankprogrammierung 11
E Hibernate Session closed nach Transaction commit? Datenbankprogrammierung 7
K Rundungsfehler bei Gleitkommazahlen von Java nach SQL Datenbankprogrammierung 2
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
alexpetri Problem mit jdbc MS Access / nach 670 inserts ist schluss. Datenbankprogrammierung 4
tfa Apache DBCP: Reconnect nach Timeout? Datenbankprogrammierung 3
M mySQL zugriff funktionert nach ca4 stündiger laufzeit nicht Datenbankprogrammierung 6
G Hilfe: Werte sind alle x2 (oder mehr) nach JOIN Datenbankprogrammierung 13
T ibatis + "generated p-key" nach insert? Datenbankprogrammierung 24
G Herausfinden des Primary Keys nach INSERT-Kommando? Datenbankprogrammierung 4
T Tabellen aus Datenbank 1 nach Datenbank 2 Datenbankprogrammierung 2
C Resultset nach connection close weiterreichen Datenbankprogrammierung 5
E JDBC, ForwardOnly bei ResultSet nach Uebergabe Datenbankprogrammierung 4
G Suchen nach Autowerten in Access-DB Datenbankprogrammierung 20
D JAVA hängt nach SQL Abfrage Datenbankprogrammierung 7
I Nach export zur .jar keine verbindung mehr Datenbankprogrammierung 7
M Datenbankverbindung bricht nach ca. 12 Stunden Verbindung ab Datenbankprogrammierung 3
R Nach String in MySQL datenbank suchen Datenbankprogrammierung 7
M Daten von MySQL nach MSSql probleme beim schreiben Datenbankprogrammierung 3
G File nach Blob konvertieren ? Datenbankprogrammierung 6
M Abfrage trennt Ergbnis eines Atrributes nach den Leerzeichen Datenbankprogrammierung 4
F Treiber nachladen oder nach Bedarf Datenbankprogrammierung 4
P Primärschlüssel direkt nach der Eingabe wieder auslesen Datenbankprogrammierung 7
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
D MySQL SQLException time zone value is unrecognized Datenbankprogrammierung 2
C Java MySQL check if value exists in database Datenbankprogrammierung 2
zhermann Data truncation: Incorrect date value: 'null' for column Datenbankprogrammierung 31
K Derby/JavaDB '<columnName>' is not a column in table or VTI '<value>'. Datenbankprogrammierung 12
AMStyles Kann Wert nicht speichern (MAX VALUE) Datenbankprogrammierung 9
L MySQL Column count doesn't match value count at row 1 Datenbankprogrammierung 9
E Data truncation Incorrect datetime value Datenbankprogrammierung 2
F Oracle Zeilenumbruch in DB-Value erkennen Datenbankprogrammierung 2
F Derby/JavaDB Exception - Cannot accept Null Value (help) Datenbankprogrammierung 10
R Hibernate Composite-ID mit Autogenerated Value Datenbankprogrammierung 3
M [HSQL] Numeric value out of range Datenbankprogrammierung 7
G [hibernate] different object with the same identifier value Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben