[MySQL]I tak źle nazwę temat

SZKOD[nick]

Były Moderator
Dołączył
Maj 2, 2003
Posty
808
Cześć, czołem, grzywką, witam

Mam takie sobie zapytanie do bazy danych:
Kod:
SELECT TeamName, count, teamrank FROM (
                        SELECT TeamName, COUNT(avg) AS count, SUM(avg)/COUNT(avg) AS teamrank
                        FROM players,rs_rank WHERE players.id=rs_rank.playerid
                        GROUP BY TeamName) as sub
                       WHERE sub.count>=3
                       ORDER BY sub.teamrank LIMIT 50
Tłumaczyć co tam się dzieje chyba nie muszę, skoro to dział taki, a nie inny…
Jak wygląda ta baza danych też nie muszę pisać, bo widać w zapytaniu w jakiej tabeli co się znajduję. Nic innego z bazy nie jest potrzebne.
Jeśli będzie potrzeba, to podam po kilka pierwszych wartości TeamName z players i avg z rs_rank, zeby zobaczyć jak to wygląda.

Zapytanie liczy drużynowy ranking (średnią policzoną ze średnich
<
) dla teamów, które mają w bazie sklasyfikowanych minimum 3 graczy.
Chciałbym, żeby liczyło ten ranking dla drużyn, które mają minimum trzech sklasyfikowanych osobników, ALE ranking był policzony tylko dla pierwszych trzech najlepszych wyników (tych z pola 'avg'). Dobry wynik, to niski wynik, więc wystarczy samo ORDER BY bez ASC, bo to chyba domyślnie, prawda?

Nie znam MySQL'a, ale do tej pory jakoś sobie z nim radziłem. Wiele różnych wariantów/pomysłów próbowałem.
Nie wiem też, czy można to zaliczyć do programowania, ale jest co kodzić, prawda? : )

pozdrowienia dla starych znajomych, którzy przeczytają posta
dla tych nowych też

//yo szkodniczku...milo Cie widziec
<

Czekam na zbawcę ; )
 

SZKOD[nick]

Były Moderator
Dołączył
Maj 2, 2003
Posty
808
Kod:
mysql> describe players;
+------------+--------------+------+-----+---------------------+----------------+
| Field      | Type         | Null | Key | Default             | Extra          |
+------------+--------------+------+-----+---------------------+----------------+
| Id         | mediumint(9) | NO   | PRI | NULL                | auto_increment |
| Login      | varchar(50)  | NO   | UNI |                     |                |
| Game       | varchar(3)   | NO   | MUL |                     |                |
| NickName   | varchar(100) | NO   |     |                     |                |
| Nation     | varchar(3)   | NO   |     |                     |                |
| UpdatedAt  | datetime     | NO   |     | 0000-00-00 00:00:00 |                |
| Wins       | mediumint(9) | NO   |     | 0                   |                |
| TimePlayed | mediumint(9) | NO   |     | 0                   |                |
| TeamName   | char(60)     | YES  |     | NULL                |                |
+------------+--------------+------+-----+---------------------+----------------+

Kod:
mysql> describe rs_rank;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| playerID | mediumint(9) | NO   | MUL | 0       |       |
| avg      | float        | NO   |     | 0       |       |
+----------+--------------+------+-----+---------+-------+
I dodatkowo po 10 wpisów
Kod:
mysql> select TeamName from players limit 10;
+----------------------------+
| TeamName                   |
+----------------------------+
| NULL                       |
| $00f〩$fff+ $f00oेsे  |
| NULL                       |
| $000〠ĦěīЙΞĸēη〠 |
| NULL                       |
| $00f〩$fff+ $f00oेsे  |
| NULL                       |
|                            |
| NULL                       |
| NULL                       |
+----------------------------+

Kod:
mysql> select avg from rs_rank limit 10;
+--------+
| avg    |
+--------+
| 194667 |
| 165179 |
| 200000 |
| 179538 |
| 200000 |
| 198974 |
| 160051 |
| 200000 |
| 116974 |
| 198872 |
+--------+
To jest wynik zapytania z pierwszego posta
Kod:
+--------------------------------+-------+------------------+
| TeamName                       | count | teamrank         |
+--------------------------------+-------+------------------+
| $00f〩$fff+ $f00oेsे      |    11 | 177347.272727273 |
| $000CR                         |     3 | 178290.666666667 |
| $000〠ĦěīЙΞĸēη〠     |     6 | 178598.166666667 |
| $FF6「$FC0тахі$FF6」     |     4 |        181512.75 |
| $f88~ΡеІісаиѕ~         |     5 |         183599.8 |
| $F00ѕ$F30т$F60о$F90я$FC0м |    14 | 184487.285714286 |
| $00d»ЯтА«                 |     4 |        191615.75 |
| $fofV้$c06®$C03»$603s      |     6 | 192675.333333333 |
| $F00FF$fff.$000X-Fi|$fff       |     6 | 192931.666666667 |
| $36fVøđΚα                  |     4 |         194153.5 |
| $7b0ήρ                       |    12 | 194388.916666667 |
| $ffeiaм。                    |    12 | 194602.583333333 |
| $f00Ħ’$000я                |    10 |           195677 |
| $fffLord $f00Team              |    12 |        195769.25 |
|                                |   122 | 197243.795081967 |
| $d00ης                       |    11 | 197953.363636364 |
| NULL                           |   225 | 199461.195555556 |
+--------------------------------+-------+------------------+
No i tyle ; )

//yo szkodniczku...milo Cie widziec wink.gif
Czekam na zbawcę ; )[/b]
Czy celowo wpisałaś się przed oczekiwaniem na zbawcę? :D Również miło
//przypadek :)
 
Do góry Bottom