Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem SQL dotaz

Dobrý den,

chtěl bych vás poprosit o pomoc s jedním dotazem. Už jsem se do toho zamotal.

Tabulka: HRAC                                  
ID    PREZDIVKA    TRIDA                  
1     hrac1        trida1

2     hrac2        trida1

3     hrac3        trida2

Tabulka: HRACSKE_BODY
HRAC_ID    BODY
1          25
1          10
3          15
2          5
2          20 

Takto nějak by mohli vypadat data v tabulkach. HRAC_ID je cizí klíč do tab. HRAC na sloupec ID.
Potřeboval bych dotaz, který vypočítá a vypíše průměrný počet bodů na jednoho hráče pro každou třídu.

Tedy výstup:

 třída1 - průměrný počet bodů na jednoho hráče
 třída2 - průměrný počet bodů na jednoho hráče

Došel jsem k tomuto:

SELECT h.id, h.prezdivka, AVG(B.body) from hrac H, hracske_body B WHERE H.id = B.hrac_id GROUP by h.trida

Ale nevypisuje to správný průměr.

Díky moc.

Předmět Autor Datum
SELECT h.trida, AVG(B.body) from hrac H, hracske_body B WHERE H.id = B.hrac_id GROUP by h.trida
Wikan 02.07.2015 20:25
Wikan
Díky za reakci, ale vypisuje špatný průměr. Všiml jsem si že, ono to sečte všechny body pro danou tř… nový
Luk 02.07.2015 20:41
Luk
Ach tak, špatně jsem pochopil zadání: SELECT h.trida, SUM(B.body)/COUNT(DISTINCT h.id) from hrac H,… poslední
Wikan 02.07.2015 20:50
Wikan

Díky za reakci, ale vypisuje špatný průměr. Všiml jsem si že, ono to sečte všechny body pro danou třídy a tento součet vydělí počtem záznamů v tabulce HRACSKE_BODY pro danou třídu.
Takže pro třídu1 dělí čtyřmi, ale správně by se mělo dělit jen dvěma, když máme 2 hřáče třídy 1.

Zpět do poradny Odpovědět na původní otázku Nahoru