Hej, mam problem z zapytaniem SQL. Weźmy ten przykład daneSQL: Używanie GROUP BY i MAX w wielu kolumnach
itemID catID attrib1 attrib2
1 1 10 5
2 1 10 7
3 1 5 10
4 2 18 15
chcę wrócić najlepszą pozycję dla każdej kategorii (z attrib1 mający pierwszeństwo przed attrib2)
Oczywiście, „SELECT CatID, MAX (attrib1), MAX (attrib2) FROM test_table GROUP BY catID "nie działa, ponieważ zwróci 10 & 10 dla pierwszego kota.
Czy jest tak, aby powiedzieć MySQL, aby wybrać maksymalną wartość z wiersza attrib2, ale uwzględnia tylko te, w których attrib1 jest również wartością maksymalną? czyli powrót następujące dane
catID attrib1 attrib2
1 10 7
2 18 15
Dzięki za wszystkie szybkie odpowiedzi chłopaki. Fajnie jest też zobaczyć różne sposoby robienia tego. – Charles
Czy to działa? 3 zwracane wartości powinny być tymi z różnych wierszy. – Ryo