agr. fce
- Myshaak
- Matfyz(ák|ačka) level III
- Příspěvky: 162
- Registrován: 18. 1. 2006 22:29
- Typ studia: Informatika Mgr.
- Login do SIS: michp5am
agr. fce
Zdar! Mam celkem problem s tyma agregac. fcema. Mohl by nekdo poradit, jak vyresil jeden priklad? :)
Mam tabulky:
Rozvrh(kod_pred,rc_ucitele,kdy,kde,hodin)
Ucitel(rc_ucitele,jm_ucitele,katedra)
a chci zjistit prumerny pocet hodin, ktere uci ucitel z KSI. JAK??
(logicky bych asi potreboval nejprve pro kazdeho z KSI udelat soucet jejich hodin a z tech souctu pak udelat prumer... ale treba -teda urcite- to jde taky jinak, ja nevim, proto se ptam ;) )
Mam tabulky:
Rozvrh(kod_pred,rc_ucitele,kdy,kde,hodin)
Ucitel(rc_ucitele,jm_ucitele,katedra)
a chci zjistit prumerny pocet hodin, ktere uci ucitel z KSI. JAK??
(logicky bych asi potreboval nejprve pro kazdeho z KSI udelat soucet jejich hodin a z tech souctu pak udelat prumer... ale treba -teda urcite- to jde taky jinak, ja nevim, proto se ptam ;) )
"Go for the eyes Boo, go for the eyes! Yeahh!!"
- Myshaak
- Matfyz(ák|ačka) level III
- Příspěvky: 162
- Registrován: 18. 1. 2006 22:29
- Typ studia: Informatika Mgr.
- Login do SIS: michp5am
Diky za pokus! ;) Ale asi jsi me spatne pochopil, jeden ucitel muze ucit vic premetu, nejlepsi asi bude priklad:
<b>Ucitel:</b> (rc_uc, jm_uc, katedra)
rc1, "Pavel", "KSI"
rc2, "Pepa", "KSI"
rc3, "Jaja", "KAM"
<b>Rozvrh:</b> (kod, rc_uc,hodin)
001, rc1, 3
002, rc2, 1
003, rc2, 2
007, rc3, 3
...pokud nejsem uz uplne blby, tak by Tvuj dotaz vratil 2, pricemz spravna logicka odpoved je 3 (jak Pavel tak Pepa uci kazdy celkem 3 hodiny)
<b>Ucitel:</b> (rc_uc, jm_uc, katedra)
rc1, "Pavel", "KSI"
rc2, "Pepa", "KSI"
rc3, "Jaja", "KAM"
<b>Rozvrh:</b> (kod, rc_uc,hodin)
001, rc1, 3
002, rc2, 1
003, rc2, 2
007, rc3, 3
...pokud nejsem uz uplne blby, tak by Tvuj dotaz vratil 2, pricemz spravna logicka odpoved je 3 (jak Pavel tak Pepa uci kazdy celkem 3 hodiny)
"Go for the eyes Boo, go for the eyes! Yeahh!!"
- stnicolaus
- Matfyz(ák|ačka) level II
- Příspěvky: 73
- Registrován: 22. 1. 2006 17:39
- Typ studia: Informatika Bc.
- Login do SIS: matal4am
- Bydliště: Plzeň
- Kontaktovat uživatele:
Myshaak píše:Diky za pokus! Ale asi jsi me spatne pochopil, jeden ucitel muze ucit vic premetu, nejlepsi asi bude priklad:
<b>Ucitel:</b> (rc_uc, jm_uc, katedra)
rc1, "Pavel", "KSI"
rc2, "Pepa", "KSI"
rc3, "Jaja", "KAM"
<b>Rozvrh:</b> (kod, rc_uc,hodin)
001, rc1, 3
002, rc2, 1
003, rc2, 2
007, rc3, 3
...pokud nejsem uz uplne blby, tak by Tvuj dotaz vratil 2, pricemz spravna logicka odpoved je 3 (jak Pavel tak Pepa uci kazdy celkem 3 hodiny)
Kód: Vybrat vše
SELECT AVG(suma)
FROM (
SELECT rc_ucitele, SUM(hodin) AS suma
FROM Rozvrh NATURAL JOIN Ucitel
WHERE katedra = 'KSI'
GROUP BY rc_ucitele
)
SQL Server
Na SQL serveru SELECT FROM SELECT podle všecho nejde:
ale je potřeba napsat to takhle:
Kód: Vybrat vše
SELECT AVG(suma) FROM ( SELECT rc_ucitele, SUM(hodin) AS suma FROM Rozvrh NATURAL JOIN Ucitel WHERE katedra = 'KSI' GROUP BY rc_ucitele )
ale je potřeba napsat to takhle:
Kód: Vybrat vše
WITH uci AS
(
SELECT rc_ucitele, SUM(hodin) AS suma
FROM Rozvrh NATURAL JOIN Ucitel
WHERE katedra = 'KSI'
GROUP BY rc_ucitele
)
SELECT AVG(suma)
FROM uci
- stnicolaus
- Matfyz(ák|ačka) level II
- Příspěvky: 73
- Registrován: 22. 1. 2006 17:39
- Typ studia: Informatika Bc.
- Login do SIS: matal4am
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: SQL Server
SQL server je humusInvInv píše:Na SQL serveru SELECT FROM SELECT podle všecho nejde:
Kód: Vybrat vše
SELECT AVG(suma) FROM ( SELECT rc_ucitele, SUM(hodin) AS suma FROM Rozvrh NATURAL JOIN Ucitel WHERE katedra = 'KSI' GROUP BY rc_ucitele )
ale je potřeba napsat to takhle:
Kód: Vybrat vše
WITH uci AS ( SELECT rc_ucitele, SUM(hodin) AS suma FROM Rozvrh NATURAL JOIN Ucitel WHERE katedra = 'KSI' GROUP BY rc_ucitele ) SELECT AVG(suma) FROM uci
Re: SQL Server
A co takhle?
Je to sice trochu prasarna, ale to preci vubec neni na skodu Hlavne je to jen jeden select. A deleni nulou nevadi, na prazdny DB by to nikdo svepravny snad nespoustel
Kód: Vybrat vše
SELECT SUM(hodin) / COUNT(DISTINCT rc_ucitele) FROM Rozvrh NATURAL JOIN Ucitel WHERE katedra = 'KSI'