Mam kilka tabel, które zawierają dane o graczach i grach, w które oni grali w tym sezonie w kręgielni podczas swoich lig. To, do czego służy ta konkretna kwerenda, to sortowanie najlepszych średnich w tym roku dla mężczyzn i kobiet. Mam to wszystko, ale nadal mam problem w pewnym szczególnym przypadku, gdy niektórzy gracze grają w wielu ligach i mają więcej niż jedną z ich średnich w topowym X.Zdobądź maksymalną średnią dla każdego odrębnego rekordu w zapytaniu SQL
Oczywiście, chcę tylko wymienić najlepszych średnia dla danego gracza, więc jeśli gracz A ma najlepszą średnią z 200 w League ABC, a także drugą średnią z 198 w League DEF, chcę tylko 200 wymienionych.
Oto uproszczona wersja zapytania, którą chciałbym zmienić, ponieważ w tej chwili muszę ręcznie usunąć duplikaty lub musiałbym napisać sorter w innym języku, ale wolałbym to zrobić w czystym SQL . (I tylko usuwane nieistotne informacje z kwerendy w tym przykładzie):
SELECT playerId, ROUND(AVG(score),2)Average, season, leagueName, COUNT(score)NumGames FROM Scores
WHERE season = '2011-2012' AND score > -1
GROUP BY season, playerID, leagueName
ORDER BY Average DESC LIMIT 0,30
Zasadniczo, stół Scores
zawiera każdy indywidualny gry, playerid, sezon, w którym gra i gra się leagueName (i innych kolumn nie są wymagane w tym przykładzie).
The WHERE
jest upewnienie się, że gra została rozegrana w tym sezonie, i że wynik jest pozytywny (-1 jest, gdy ludzie są nieobecni). Grupuję wszystko według sezonu, playerID i leagueName, więc otrzymuję średnią PER LEAGUE dla każdego gracza zamiast średniej wszystkich gier rozgrywanych w różnych ligach.
Próbowałem użyć słowa kluczowego DISTINCT
, ale to nie działa, ponieważ nie mogę użyć DISTINCT
tylko dla jednej kolumny. Próbowałem także innych rzeczy, ale żadna z nich nie była nawet bliska pracy, więc zastanawiam się, czy to nawet możliwe, czy będę musiał użyć innego języka do sortowania tego zestawu wyników i usuwania duplikatów?
Bardzo dobra, jest to moja preferowana odpowiedź, ponieważ działa w pojedynczej kwerendzie bez potrzeby stosowania tabel tymczasowych. Dzięki za tonę! –