SQL: Verwenden von GROUP BY und MAX für mehrere Spalten

Hey, ich habe ein Problem mit einer SQL-Abfrage. Nehmen wir dieses Beispiel data

itemID  catID  attrib1  attrib2
  1       1       10       5   
  2       1       10       7
  3       1        5      10
  4       2       18      15

Ich möchte den besten Artikel für jede Kategorie zurückgeben (wobei Attrib1 Vorrang vor Attrib2 hat)

Offensichtlich funktioniert "SELECT catID, MAX (attrib1), MAX (attrib2) FROM test_table GROUP BY catID" nicht, da 10 & 10 für die erste Katze zurückgegeben werden.

So gibt es trotzdem die Möglichkeit, MySQL anzuweisen, den Maximalwert aus der Zeile attrib2 auszuwählen, aber nur diejenigen zu berücksichtigen, bei denen attrib1 auch der Maximalwert ist? dh die folgenden Daten zurückgeben

 catID  attrib1  attrib2
   1       10       7   
   2       18      15

Antworten auf die Frage(8)

Ihre Antwort auf die Frage