pondělí 16. května 2011

Ďasy

     První 'normální' zkouška za mnou. Dneska 16. 5. jsem se od 10. hodin zúčastnila předtermínu z dasy. Bylo nás tam celkem 14. Tuto zkoušku lze označit za lehkou, když se na ní průběžně připravujete, nebo jednoduše, když nad příklady strávíte dostatek času a vynaložíte nějaké to úsilí.

     Zkouška probíhala dle očekávání, v počítačové učebně B-870 (kde probíhala naše normální cvičení) jsme se každý posadil ke svému stroji, zapnul si ho - linux ... posléze si zapnul internet a našel internetovou stránku, kde se píše test. Zapsal tam své jméno a příjmení a počkal na pokyn začátku testu.
     Asi 5 minut po 10. jsme se pustili do díla. Abych zde objasnila princip zkoušky: test se skládá z jednotlivých příkladů, od nejjednodušších po ty složitější a složité. Každý příklad se týká určitého datasetu (soustavy tabulek, ale mnohdy je tam pouze tabulka jedna) souvisejícím s nějakým tématem. Např máte najít, kdo hrál ve filmu Dům u jezera a máte soustavu tabulek s herci, s filmy a pak s obsazením, která je propojovací - říká, kdo v jakém filmu hrál. A tak vyberete, co chcete zobrazit - jméno třebas a propojíte tabulky... a na podobném principu fungují v podstatě všechny příklady.
     Všechny příklady jsou bodově ohodnoceny 1-15 bodů, dle obtížnosti. Za nesprávně zodpovězenou, či přeskočenou otázku se neodečítají body, ale celkově získané body se násobí koeficientem (správně zodpovězené)/(všechny otázky)... tudíž čím víc otázek přeskočíte, tím víc se vám získané body zredukují.
     Tak jsem tak jela, jela otázku po otázce od těch nejlehčích ... a zezačátku pohodička, všechny jsem věděla, ale tak po 15 minutách se už objevila nějaká hnusná otázka, buď z datasetu 'vodočty', které jsem se nějak moc neučila, protože jsem je nechápala, nebo nějaká složitější z letadel, či nějaká jiná, na kterou jsem zrovna v danou chvíli nepřišla. Ani jsem nepočítala kolik jsem prošla příkladů, ale počítala jsem si, kolik jsem jich přeskočila a toto číslo nebylo moc povzbudivé ... 8 a to je docela dost. Pomalu a jistě jsem se loučila s vytouženým Áčkem (>100 bodů) a byla pomalu smířená s nějakým C. ...
     Asi 7 minut před koncem, jsem ten test ukončila. A čuměla jsem, získala jsem 138 bodů! Celkově jsem jich nasbírala nějak přes 170, ale kvůli těm 8 příkladům se to smrsklo... ne o tolik, páč jsem projela 35 příkladů! Můj rekord XD. Ani mi to tolik nepřišlo XD, je to divný...


- můj testík :D

Test finished ...  00:53:29   (session 2254)11:03:26
***
Number of questions:35
Correct answers:27
Total points:179
Evaluation:138


nobelova_cena 153 (2):
TableColumns
laureatirok, obor, laureat
Uveďte rok a obor ve kterém získal Nobelovu cenu 'Albert Einstein'.
select rok, obor
from laureati
where laureat='Albert Einstein'
 
ttmd 1207 (3):
TableColumns
ttmdgames, color, team, country
teamid, name
Stolní tenis (dvouhry mužů): Uveďte olympidu a medaili, kterou získal tým ve kterém hrál 'YAN, Sen'.
select games, color
from ttmd
join team
on team=id
where name='YAN, Sen'
 
letadla 608 (4):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Kolik letadel je v databázi a kolik letadel nemá v databázi definovanou hodnotu kapacity?
select count(letadlo), count(*)-count(kapacita)
from dopravni_letadla
 
letadla 620 (5):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Které evropské společnosti mají ve své flotile letadla, která byla uvedena do provozu v letech 1993 až 1995? Uveďte společnost, výrobce, typ letadla a rok.
select spolecnost, vyrobce, letadlo, v_provozu_od
from letecke_spolecnosti s
join letecke_flotily f
on f.spolecnost_id=s.id
join dopravni_letadla l
on l.id=f.letadlo_id
where v_provozu_od >=1993 and v_provozu_od<=1995
and svetadil='Evropa'
 
letadla 604 (4):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Jak se jmenuje největší letadlo (tj. s největší kapacitou), kdo je jeho výrobcem a jaká je jeho kapacita?
select letadlo, vyrobce, kapacita
from dopravni_letadla
where kapacita =(select max(kapacita) from dopravni_letadla)
 
computer_store 82 (5):
TableColumns
manufacturerscode, name
productscode, name, price, manufacturer
Jaké je jméno a cena nejlevnějšího produktu?
select name, price
from products
where price=(select min(price) from products)
 
letadla 603 (4):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Které letecké společnosti mají ve své flotile letadla Douglas DC-8? Vypište společnost, zemi a počet letadel.
select spolecnost, zeme, pocet_letadel
from dopravni_letadla l
join letecke_flotily f
on f.letadlo_id=l.id
join letecke_spolecnosti s
on s.id=f.spolecnost_id
where letadlo='Douglas DC-8'
 
computer_store 80 (6):
TableColumns
manufacturerscode, name
productscode, name, price, manufacturer
Vypište průměrné ceny a jména výrobců, jejichž produkty mají průměrnou cenu vyšší nebo rovnu 150 dolarů.
select avg(price), m.name
from manufacturers m
join products p
on p.manufacturer=m.code
group by m.name
having avg(price)>=150
 
unesco 413 (5):
TableColumns
unescopamatka, kategorie, zeme, region, zapis, doplneni
Které země Latinské Ameriky ('Latin America') mají v seznamu světového dědictví UNESCO zapsáno alespoň pět památek? Uveďte vždy zemi a počet.
select zeme, count(pamatka)
from unesco
where region='Latin America'
group by zeme
having count(pamatka)>=5
 
staty 510 (6):
TableColumns
statystat, region, populace, hdp
Které evropské země (Europe) mají HDP na hlavu vyšší než Velká Británie (United Kingdom).
select stat
from staty
where hdp/populace > (select hdp/populace from staty where stat
like 'United Kingdom') and region like '%Europe%'
 
filmy 210 (6):
TableColumns
filmyid, rok, titul
umelciid, jmeno
obsazenifilm_id, umelec_id, poradi
reziefilm_id, umelec_id
Vypište všechny filmy a herce hlavních rolí (tj. těch, kteří mají pořadí 1) z roku 2003
select titul, jmeno
from filmy f
join obsazeni o
on o.film_id=f.id
join umelci u
on u.id=o.umelec_id
where rok=2003 and poradi=1
 
tramvaje 305 (6):
TableColumns
zastavkyid, zastavka
linkylinka, smer, poradi, zastavka_id
Kterými zastávkami projíždí více než 6 linek. Vypište jména zastávek a počet linek, které jimi projíždí. Poznámka: na některých linkách jsou dvě zastávky stejného jména, linku musíte ale započítat jen jednou.
select zastavka, count(distinct linka)
from zastavky
join linky
on id=zastavka_id
group by zastavka
having count(distinct linka)>6
 
tramvaje 308 (10):
TableColumns
zastavkyid, zastavka
linkylinka, smer, poradi, zastavka_id
Vypište seznam zastávek, které jsou dosažitelné bez přestupu ze stanice Thákurova.
select distinct zastavka
from linky
join zastavky
on id=zastavka_id
and zastavka <> 'Thákurova' and linka in
(select linka from zastavky join linky 
on id=zastavka_id where zastavka='Thákurova')
 
letadla 617 (12):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Pro každou australskou leteckou společnost najděte její letadlo s největší kapacitou. Uveďte leteckou společnost, výrobce, letadlo a kapacitu. Missing answer Correct answer
SELECT DISTINCT LS.spolecnost AS "Dopravce", DL.vyrobce AS
"Výrobce",
       letadlo, kapacita
  FROM letecke_spolecnosti  LS
       JOIN 
       letecke_flotily      LF 
       ON LS.id=LF.spolecnost_id
       JOIN 
       dopravni_letadla     DL 
       ON DL.id=LF.letadlo_id
          AND svetadil='Austrálie'
          AND kapacita >= (SELECT MAX(kapacita)
                             FROM letecke_spolecnosti S
                                  JOIN
                                  letecke_flotily     F
                                  ON S.id = F.spolecnost_id
                                  JOIN
                                  dopravni_letadla    L
                                  ON L.id = F.letadlo_id
                                     AND LS.spolecnost =
S.spolecnost);
 
olympics 8 (8):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Discipline Table Tennis (event doubles Men): Uveďte kdo získal zlato na olympijských hrách 2004.
select forename, surname
from sports
join medals using (discipline_id, event_id)
join athletes using (athlete_id)
where discipline='Table Tennis'
and event='doubles Men'
and year=2004
and medal='gold'
 
staty 513 (9):
TableColumns
statystat, region, populace, hdp
Najděte v každém regionu zemi s nejvyšším počtem obyvatel. Uveďte stát, region a populaci.
select stat, region, populace
from staty
where (region, populace) in (select region, max(populace)
from staty group by region)
 
letadla 612 (10):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
U kterých společností není známa kapacita ani jednoho letadla? Uveďte společnost, zemi a světadíl. Wrong answer
select spolecnost, zeme, svetadil
from letecke_spolecnosti s
join letecke_flotily f
on f.spolecnost_id=s.id
join dopravni_letadla l
on l.id=f.letadlo_id
where kapacita is null
group by spolecnost,zeme, svetadil
Correct answer
SELECT S.spolecnost, zeme, svetadil
  FROM letecke_spolecnosti   S
       LEFT JOIN 
       letecke_flotily  F  
       ON S.id=F.spolecnost_id
       LEFT JOIN 
       dopravni_letadla L  
       ON L.id=F.letadlo_id
 GROUP BY S.spolecnost, zeme, svetadil
HAVING SUM(kapacita) IS NULL
 ORDER BY svetadil, zeme, S.spolecnost;
SELECT spolecnost, zeme, svetadil
  FROM letecke_spolecnosti
 WHERE letecke_spolecnosti.id NOT IN (
          SELECT distinct letecke_spolecnosti.id
            FROM letecke_spolecnosti
                 JOIN letecke_flotily
                 ON letecke_flotily.spolecnost_id =
letecke_spolecnosti.id
                 JOIN dopravni_letadla
                 ON letecke_flotily.letadlo_id =
dopravni_letadla.id
           WHERE kapacita IS NOT null)
 
vodocty 806 (15):
TableColumns
tokyid, jmeno
staniceid, nazev
vodoctytok_id, stanice_id, cas, vodocet_cm
limity_cmtok_id, stanice_id, bdelost, pohotovost, ohrozeni
clenenitok_id, stanice_id, kraj, pobocka, povodi
Jaký je počet překročení limitů SPA za den (stav povodňové aktivity platí i při dosažení rovnosti). Uveďte i nulové hodnoty, tj. dny ve kterých nebyly limity SPA překročeny. Pozn.: pro převod typu timestamp na datum použijte funkci date(cas) nebo konverzi cast(cas as date). Missing answer Correct answer
SELECT cast(cas as date), 
       sum (CASE WHEN vodocet_cm >= bdelost THEN 1 ELSE 0 END)
  FROM vodocty 
       NATURAL LEFT JOIN
       limity_cm
 GROUP BY cast (cas as date);
SELECT cast(cas as date), count(bdelost)
  FROM vodocty AS V
       LEFT JOIN
       limity_cm AS L
       ON V.tok_id = L.tok_id 
          AND V.stanice_id  = L.stanice_id
          AND V.vodocet_cm >= L.bdelost
 GROUP BY cast (cas as date);
SELECT A.den, x+COALESCE(y,0)
  FROM (
        SELECT DISTINCT DATE(cas) AS den, 0 AS x
        FROM vodocty
       ) A
       LEFT JOIN
       (
        SELECT DATE(cas) AS den, COUNT(*) AS y
          FROM vodocty
               NATURAL JOIN
               limity_cm
         WHERE vodocet_cm >= bdelost
         GROUP BY DATE(cas)
        ) B
        ON A.den = B.den;
 
tramvaje 306 (6):
TableColumns
zastavkyid, zastavka
linkylinka, smer, poradi, zastavka_id
Kterou zastávkou, resp. kterymi zastávkami, projíždí nejvíc linek?
select zastavka
from zastavky
join linky
on id=zastavka_id
group by zastavka
having count(distinct linka) >= all
(select count (distinct linka)
from linky join zastavky on id=zastavka_id group by id)
vodocty 803 (13):
TableColumns
tokyid, jmeno
staniceid, nazev
vodoctytok_id, stanice_id, cas, vodocet_cm
limity_cmtok_id, stanice_id, bdelost, pohotovost, ohrozeni
clenenitok_id, stanice_id, kraj, pobocka, povodi
Jaké jsou denní průměry vodočtů na Dyji? Uveďte název stanice, datum a průměrnou hodnotu vodočtu na stanici (zaokrouhlete na celé centimetry). Missing answer Correct answer
SELECT nazev, date(cas), avg(vodocet_cm)::numeric(8,2)
FROM   stanice s
       JOIN vodocty v ON s.id=v.stanice_id
       JOIN toky t ON v.tok_id=t.id
WHERE  jmeno='Dyje'
GROUP BY nazev, date(cas)
ORDER BY nazev, date(cas)
SELECT nazev, date(cas) AS datum,
       AVG(vodocet_cm)::numeric(8,2) AS prumer
  FROM toky
       JOIN
       vodocty
       ON toky.id=tok_id
       JOIN
       stanice
       ON stanice.id=stanice_id
 WHERE tok_id = (SELECT id FROM toky WHERE jmeno='Dyje')
 GROUP BY nazev, DATE(cas)
 ORDER BY nazev, DATE(cas);
 
letadla 626 (6):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Která letadla registrovaná v databázi nepoužívá žádná společnost? Uveďte výrobce, letadlo a rok, ve kterém bylo letadlo uvedeno do provozu.
select distinct vyrobce, letadlo, v_provozu_od
from dopravni_letadla
where id not in (select letadlo_id from letecke_flotily)
 
filmy 214 (6):
TableColumns
filmyid, rok, titul
umelciid, jmeno
obsazenifilm_id, umelec_id, poradi
reziefilm_id, umelec_id
Vypište filmy z roku 2006 a počet herců, kteří v nich hráli. Uveďte počet herců a titul filmu.
select count (jmeno), titul
from filmy f
join obsazeni o
on o.film_id=f.id
join umelci u
on u.id=o.umelec_id
where rok=2006
group by titul
 
vodocty 807 (8):
TableColumns
tokyid, jmeno
staniceid, nazev
vodoctytok_id, stanice_id, cas, vodocet_cm
limity_cmtok_id, stanice_id, bdelost, pohotovost, ohrozeni
clenenitok_id, stanice_id, kraj, pobocka, povodi
Které vodní toky nemají definovány limity SPA (stav povodňové aktivity), tj. nejsou uvedeny v tabulce limity_cm. Uveďte jméno toku a povodí a odstraňte případné duplicity. Missing answer Correct answer
SELECT DISTINCT jmeno, povodi
  FROM toky
       JOIN
       cleneni 
       ON tok_id = toky.id
          AND tok_id NOT IN (SELECT tok_id 
                               FROM limity_cm);
 
pracoviste 109 (8):
TableColumns
pracovistekod, popis
zamestnanciid, jmeno, prijmeni, pracoviste_kod, vek
mzdyid, vlozeno, zamestnanec_id, castka
Vypište zaměstnance, kteří v dubnu nedostali výplatu Missing answer Correct answer
SELECT jmeno, prijmeni FROM zamestnanci
        WHERE id NOT IN
          (SELECT zamestnanec_id FROM mzdy
                   WHERE EXTRACT(month FROM vlozeno) = '4');
SELECT jmeno, prijmeni FROM zamestnanci
   LEFT JOIN ( SELECT * FROM mzdy
               WHERE EXTRACT( month FROM vlozeno) = '4'
             ) AS mzdy_duben
   ON zamestnanec_id = zamestnanci.id
   WHERE castka IS NULL;
 
pracoviste 107 (5):
TableColumns
pracovistekod, popis
zamestnanciid, jmeno, prijmeni, pracoviste_kod, vek
mzdyid, vlozeno, zamestnanec_id, castka
Vypište jméno, příjmení a částku všech zaměstnanců, kteří mají nižší mzdu než je průměrná.
select jmeno, prijmeni, castka
from zamestnanci z
join mzdy
on zamestnanec_id=z.id
where castka < (select avg(castka) from mzdy)
 
staty 520 (7):
TableColumns
statystat, region, populace, hdp
Pro každý region vypište jeho označení a počet státu s počtem obyvatel větším než 10 milionů. Poznámka: uveďte i regiony s nulovým počtem států.
select region, sum (case when populace>10000000
then 1 else 0 end)
from staty
group by region
 
olympics 3 (8):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Discipline Table Tennis (event singles Men): Uveďte roky, ve kterých Čína ('China') získala zlatou medaili ('gold').
select year
from sports
join medals using (discipline_id, event_id)
join ioc_codes using (country_code)
where discipline='Table Tennis'
and event='singles Men'
and medal='gold'
and country='China'
 
premyslovci 905 (14):
TableColumns
premyslovciid, jmeno, narozeni, umrti, otec, matka, rod
Kdo byli prarodiče knížete Václava? Uveďte jméno a rod.
select pra.jmeno, pra.rod
from premyslovci rodice
join premyslovci deti
on rodice.id in (deti.matka, deti.otec)
and deti.jmeno='Václav'
join premyslovci pra
on pra.id in (rodice.matka, rodice.otec)
 
premyslovci 902 (10):
TableColumns
premyslovciid, jmeno, narozeni, umrti, otec, matka, rod
Kdo byli rodiče Elišky Rejčky?
select rodice.jmeno
from premyslovci rodice
join premyslovci deti
on rodice.id in (deti.matka, deti.otec)
and deti.jmeno='Eliška Rejčka'
 
olympics 2 (8):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Table Tennis (singles Men): Kdo získal medaili a ve kterém roce na olympidádě ve Švédsku ('Sweden')?
select forename, surname, medal, year
from sports
join medals using (discipline_id, event_id)
join ioc_codes using (country_code)
join athletes using (athlete_id)
where discipline='Table Tennis'
and event='singles Men'
and country='Sweden'
 
olympics 5 (8):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Discipline Table Tennis (event singles Women): Na kterých olympijských hrách získala 'Chen, Jing' medaili? Uveďte město a medaili.
select city, medal
from sports
join medals using (discipline_id, event_id)
join athletes using (athlete_id)
join olympics using (category, year)
where discipline='Table Tennis'
and event='singles Women'
and forename='Jing'
and surname='Chen'
 
olympics 9 (8):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Discipline Table Tennis (event doubles Men): Uveďte jména všech franzouských medailistů ('FRA').
select forename, surname
from sports
join medals using (discipline_id, event_id)
join athletes using (athlete_id)
where discipline='Table Tennis'
and event='doubles Men'
and country_code='FRA'
 
letadla 621 (13):
TableColumns
dopravni_letadlaid, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od
letecke_spolecnostiid, spolecnost, zeme, svetadil, aliance, zalozeno
letecke_flotilyspolecnost_id, letadlo_id, pocet_letadel
Uveďte všechny německé letecké společnosti a kolik mají Airbusů. Missing answer Correct answer
SELECT spolecnost, coalesce(sum(pocet_letadel),0)
  FROM (SELECT id, spolecnost
          FROM letecke_spolecnosti
         WHERE zeme='Německo') AS N
       LEFT JOIN
       (SELECT spolecnost_id AS id, pocet_letadel
          FROM letecke_flotily
               JOIN 
               dopravni_letadla 
               ON letadlo_id = id
         WHERE vyrobce='Airbus') AS A
       ON N.id=A.id
 GROUP BY spolecnost;
SELECT spolecnost, coalesce(sum(x.pocet_letadel),0) 
  FROM letecke_spolecnosti
       LEFT JOIN
       (
       SELECT letecke_flotily.spolecnost_id, pocet_letadel
       FROM letecke_flotily
       JOIN dopravni_letadla
            ON letecke_flotily.letadlo_id = dopravni_letadla.id
       WHERE vyrobce = 'Airbus'
       ) AS x
      ON  x.spolecnost_id = letecke_spolecnosti.id
WHERE zeme = 'Německo'
GROUP BY spolecnost;
 
olympics 106 (10):
TableColumns
olympicsyear, city, category, country_code, opening, closing, nations, athletes, sports, events
athletesathlete_id, forename, surname
sportssport, category, discipline_id, discipline, event_id, event, status
medalsyear, discipline_id, event_id, athlete_id, medal, country_code
ioc_codescountry_code, country
Discipline Athletics (event marathon Men): Uveďte zemi a počet medailí v maratonu mužů. Země bez medailí neuvádějte.
select country, count (medal)
from sports
join medals using (discipline_id, event_id)
join ioc_codes using (country_code)
where discipline='Athletics'
and event='marathon Men'
group by country
 
premyslovci 909 (15):
TableColumns
premyslovciid, jmeno, narozeni, umrti, otec, matka, rod
Kolik dětí měli Přemyslovci? Uveďtě vždy jméno a počet dětí (u bezdětných uvádějte nulu). Wrong answer
select rodice.jmeno, count(deti)
from premyslovci rodice
left join premyslovci deti
on rodice.id in (deti.matka, deti.otec)
where rodice.rod like 'Přemyslovci'
group by rodice.jmeno, rodice.rod
Correct answer
SELECT rodice.jmeno, count(deti.jmeno)
  FROM premyslovci as rodice
       LEFT JOIN
       premyslovci as deti
       ON rodice.id=deti.otec OR rodice.id=deti.matka
 WHERE rodice.rod = 'Přemyslovci'
 GROUP BY rodice.id, rodice.jmeno;

Žádné komentáře:

Okomentovat