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
***
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):
Table Columns laureati rok, obor, laureat select rok, obor from laureati where laureat='Albert Einstein'
- ttmd 1207 (3):
Table Columns ttmd games, color, team, country team id, name select games, color from ttmd join team on team=id where name='YAN, Sen'
- letadla 608 (4):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel select count(letadlo), count(*)-count(kapacita) from dopravni_letadla
- letadla 620 (5):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel 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):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel select letadlo, vyrobce, kapacita from dopravni_letadla where kapacita =(select max(kapacita) from dopravni_letadla)
- computer_store 82 (5):
Table Columns manufacturers code, name products code, name, price, manufacturer select name, price from products where price=(select min(price) from products)
- letadla 603 (4):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_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):
Table Columns manufacturers code, name products code, name, price, manufacturer 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):
Table Columns unesco pamatka, kategorie, zeme, region, zapis, doplneni select zeme, count(pamatka) from unesco where region='Latin America' group by zeme having count(pamatka)>=5
- staty 510 (6):
Table Columns staty stat, region, populace, hdp select stat from staty where hdp/populace > (select hdp/populace from staty where stat
like 'United Kingdom') and region like '%Europe%'
- filmy 210 (6):
Table Columns filmy id, rok, titul umelci id, jmeno obsazeni film_id, umelec_id, poradi rezie film_id, umelec_id 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):
Table Columns zastavky id, zastavka linky linka, smer, poradi, zastavka_id select zastavka, count(distinct linka) from zastavky join linky on id=zastavka_id group by zastavka having count(distinct linka)>6
- tramvaje 308 (10):
Table Columns zastavky id, zastavka linky linka, smer, poradi, zastavka_id 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):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel 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):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns staty stat, region, populace, hdp select stat, region, populace from staty where (region, populace) in (select region, max(populace)
from staty group by region)
- letadla 612 (10):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel 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 answerSELECT 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):
Table Columns toky id, jmeno stanice id, nazev vodocty tok_id, stanice_id, cas, vodocet_cm limity_cm tok_id, stanice_id, bdelost, pohotovost, ohrozeni cleneni tok_id, stanice_id, kraj, pobocka, povodi 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):
Table Columns zastavky id, zastavka linky linka, smer, poradi, zastavka_id 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):
Table Columns toky id, jmeno stanice id, nazev vodocty tok_id, stanice_id, cas, vodocet_cm limity_cm tok_id, stanice_id, bdelost, pohotovost, ohrozeni cleneni tok_id, stanice_id, kraj, pobocka, povodi 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):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel select distinct vyrobce, letadlo, v_provozu_od from dopravni_letadla where id not in (select letadlo_id from letecke_flotily)
- filmy 214 (6):
Table Columns filmy id, rok, titul umelci id, jmeno obsazeni film_id, umelec_id, poradi rezie film_id, umelec_id 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):
Table Columns toky id, jmeno stanice id, nazev vodocty tok_id, stanice_id, cas, vodocet_cm limity_cm tok_id, stanice_id, bdelost, pohotovost, ohrozeni cleneni tok_id, stanice_id, kraj, pobocka, povodi 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):
Table Columns pracoviste kod, popis zamestnanci id, jmeno, prijmeni, pracoviste_kod, vek mzdy id, vlozeno, zamestnanec_id, castka 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):
Table Columns pracoviste kod, popis zamestnanci id, jmeno, prijmeni, pracoviste_kod, vek mzdy id, vlozeno, zamestnanec_id, castka select jmeno, prijmeni, castka from zamestnanci z join mzdy on zamestnanec_id=z.id where castka < (select avg(castka) from mzdy)
- staty 520 (7):
Table Columns staty stat, region, populace, hdp select region, sum (case when populace>10000000
then 1 else 0 end) from staty group by region
- olympics 3 (8):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns premyslovci id, jmeno, narozeni, umrti, otec, matka, 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):
Table Columns premyslovci id, jmeno, narozeni, umrti, otec, matka, rod 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):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns dopravni_letadla id, vyrobce, letadlo, dolet_km, kapacita, v_provozu_od letecke_spolecnosti id, spolecnost, zeme, svetadil, aliance, zalozeno letecke_flotily spolecnost_id, letadlo_id, pocet_letadel 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):
Table Columns olympics year, city, category, country_code, opening, closing, nations, athletes, sports, events athletes athlete_id, forename, surname sports sport, category, discipline_id, discipline, event_id, event, status medals year, discipline_id, event_id, athlete_id, medal, country_code ioc_codes country_code, country 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):
Table Columns premyslovci id, jmeno, narozeni, umrti, otec, matka, rod 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 answerSELECT 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