select * from zawodnicy select * from trenerzy select * from skocznie select * from miasta select imie,nazwisko, imie_t, nazwisko_t from zawodnicy left join trenerzy on zawodnicy.id_trenera = trenerzy.id_trenera select z.imie,z.nazwisko ,z.id_trenera, t.imie_t, t.nazwisko_t, t.id_trenera from zawodnicy z left join trenerzy t on z.id_trenera = t.id_trenera select imie, nazwisko, imie_t,nazwisko_t from zawodnicy cross join trenerzy -- 1) wpisz wszystkie miasta i informacje jakie skocznie -- się na w nich znajdują select m.*, s.* from miasta m left join skocznie s on m.id_miasta = s.id_miasta -- 2) wypisz zawodnikow i skocznie z tego samego kraju select * from zawodnicy select * from skocznie select * from zawodnicy z join skocznie s on z.kraj = s.kraj_skoczni select * from zawody select * from skocznie select m.nazwa_miasta, z.nazwa from miasta m join skocznie s on m.id_miasta=s.id_miasta join zawody z on z.id_skoczni = s.id_skoczni --1) wypisz wszystkich zawodnikow, wraz z nazwami zawodów select z.imie, z.nazwisko, zw.nazwa from zawodnicy z left join uczestnictwa u on z.id_zawodnika = u.id_zawodnika left join zawody zw on zw.id_zawodow=u.id_zawodow --2) wypisz nazwy skoczni w jakich skakali poszczególni -- zawodnicy select s.nazwa_skoczni, z.imie + ' ' + z.nazwisko from skocznie s left join zawody zw on s.id_skoczni=zw.id_skoczni left join uczestnictwa u on u.id_zawodow = zw.id_zawodow left join zawodnicy z on z.id_zawodnika = u.id_zawodnika where nazwa_skoczni is not null --3) wypisz ternerów i zawodników urodzonych w tym samym -- miesiacu select z.imie, z.nazwisko, z.data_ur, t.imie_t, t.nazwisko_t, t.data_ur_t from trenerzy t join zawodnicy z on MONTH(t.data_ur_t) = MONTH(z.data_ur) --4) wypisz pary zawodnikow urodzonych tego samego dnia -- tygodnia i z tego samego kraju (są tacy?) select z1.imie, z1.nazwisko,format(z1.data_ur ,'ddd'),z1.kraj, z2.imie, z2.nazwisko,format(z2.data_ur ,'ddd'), z2.kraj from zawodnicy z1 join zawodnicy z2 on z1.kraj = z2.kraj and format(z1.data_ur ,'ddd')= format(z2.data_ur,'ddd') --and z1.nazwisko != z2.nazwisko and z1.id_zawodnika > z2.id_zawodnika --5) wypisz trenerów i miasta jakie musieli odwiedzić select distinct t.nazwisko_t, m.nazwa_miasta from trenerzy t left join zawodnicy z on t.id_trenera = z.id_trenera left join uczestnictwa u on u.id_zawodnika = z.id_zawodnika left join zawody zw on zw.id_zawodow = u.id_zawodow left join skocznie s on s.id_skoczni = zw.id_skoczni left join miasta m on m.id_miasta = s.id_miasta select distinct kraj from zawodnicy select z.* from zawodnicy z left join trenerzy t on z.id_trenera = t.id_trenera where z.id_trenera is null select * from zawodnicy where id_trenera is null select * from trenerzy t left join zawodnicy z on z.id_trenera = t.id_trenera where z.id_trenera is null select z1.imie,z1.nazwisko,z1.kraj , z2.imie, z2.nazwisko,z2.kraj, z1.wzrost , z2.wzrost from zawodnicy z1 join zawodnicy z2 on z1.kraj = z2.kraj and z1.wzrost>z2.wzrost -- wypisz pary zawodnik-trener , ktorych nazwisko zaczyna na -- te sama litere select z.nazwisko, t.nazwisko_t from zawodnicy z join trenerzy t on left(z.nazwisko,1)= left(t.nazwisko_t,1) select distinct kraj, wzrost from zawodnicy select kraj ,sum( wzrost) , avg(wzrost), min(wzrost), STDEV(wzrost) from zawodnicy group by kraj select kraj , waga,sum(wzrost) , avg(wzrost), min(wzrost), STDEV(wzrost), count(wzrost) from zawodnicy group by kraj, waga select kraj,count(waga),count(Wzrost), count(nazwisko), count(id_trenera) from zawodnicy group by kraj select kraj, count(kraj) from zawodnicy group by kraj select kraj, max(wzrost) from zawodnicy group by kraj select kraj, count(wzrost) from zawodnicy where wzrost> 180 group by kraj select kraj, avg(wzrost) from zawodnicy group by kraj select kraj, sum(iif(wzrost>180,1,0)) wys, sum(iif(wzrost<175,1,0)) nis from zawodnicy group by kraj select kraj_skoczni, count(kraj_skoczni), count(*) from skocznie where kraj_skoczni is null group by kraj_skoczni select kraj, sum(wzrost) from zawodnicy group by kraj select sum(wzrost) from zawodnicy select kraj, sum(wzrost) from zawodnicy group by rollup(kraj) -- dla kazdego zawodnika wypisz pore roku w jakiej sie urodzil -- pory roku okresl na podstawie miesiecy np: 12,1,2 to zima itd... select kraj, case when MONTH(data_ur) in (12,1,2) then 'zima' when MONTH(data_ur) between 3 and 5 then 'wiosna' when MONTH(data_ur) between 6 and 8 then 'lato' else 'jesien' end , avg(wzrost) from zawodnicy group by cube(kraj, case when MONTH(data_ur) in (12,1,2) then 'zima' when MONTH(data_ur) between 3 and 5 then 'wiosna' when MONTH(data_ur) between 6 and 8 then 'lato' else 'jesien' end) select kraj, avg(wzrost) from zawodnicy group by kraj having avg(wzrost) >= 180 select kraj , count(wzrost) from zawodnicy where wzrost >180 group by kraj having count(kraj)>1 -- 1) Wypisz zawodnikow raz z informacja ile razy startowali w zawodach select z.imie, z.nazwisko, count(w.nazwa) from zawodnicy z left join uczestnictwa u on u.id_zawodnika=z.id_zawodnika left join zawody w on w.id_zawodow = u.id_zawodow group by imie,nazwisko -- 2) wypisz tylko te miasta, w których startowało przynajmniej 3 zawodnikow select m.nazwa_miasta, COUNT( u.id_zawodnika) from miasta m left join skocznie s on m.id_miasta = s.id_miasta left join zawody w on w.id_skoczni = s.id_skoczni left join uczestnictwa u on u.id_zawodow = w.id_zawodow group by nazwa_miasta having COUNT( u.id_zawodnika)>2 select m.nazwa_miasta, COUNT( u.id_zawodnika) from miasta m join skocznie s on m.id_miasta = s.id_miasta join zawody w on w.id_skoczni = s.id_skoczni join uczestnictwa u on u.id_zawodow = w.id_zawodow group by nazwa_miasta -- 3) wypisz trenerów, którzy trenują przyjnamniej 2 zawodników -- których wzrost wynosi ponizej 175 select t.imie_t, t.nazwisko_t, count(z.nazwisko) from trenerzy t left join zawodnicy z on t.id_trenera = z.id_trenera where z.wzrost <175 group by t.imie_t, t.nazwisko_t having count(z.nazwisko) > 1 -- 4) zrób zestawienie, w którym wyświetlisz, dla kazdego kraju -- maksymalny punkt k skoczni oraz informację jaki jest maksymalny -- punkt k dla wszystkich krajow , jednoczesnie -- nie uwzględniaj pustych wierszy select kraj_skoczni, max(k) from skocznie where kraj_skoczni is not null group by rollup(kraj_skoczni) -- 5) sprawdź ile razy trener polaków odwiedził miasta, które nie -- zawierają w swojej nazwie liter "g" select t.nazwisko_t, count(m.nazwa_miasta) from trenerzy t left join zawodnicy z on t.id_trenera = z.id_trenera left join uczestnictwa u on u.id_zawodnika = z.id_zawodnika left join zawody w on w.id_zawodow = u.id_zawodow left join skocznie s on s.id_skoczni = w.id_skoczni left join miasta m on m.id_miasta = s.id_miasta where z.kraj = 'pol' and m.nazwa_miasta not like '%o%' group by nazwisko_t select imie, nazwisko from (select imie, nazwisko, kraj, waga+1 w from zawodnicy) t where w>67 -- stworz zapytanie, ktore wyswietla imie, nazwisko -- i bmi . nastepnie w nowym selecie odwołaj się do -- tego podzapytania i przefiltruj zawodników -- po bmi > 20, wykorzystując alias bmi w where select imie, nazwisko, format(bmi,'0.00') from (select imie, nazwisko, waga/power(wzrost/100.0,2) bmi from zawodnicy) t where bmi > 20 select imie, nazwisko, bmi from (select imie, nazwisko, format(waga/power(wzrost/100.0,2),'0.00') bmi from zawodnicy) t where bmi > 20.00 select iif('210'<'22','tak','nie') select imie, nazwisko, (select max(waga) from zawodnicy) from zawodnicy select imie, nazwisko, (select waga from zawodnicy) from zawodnicy select imie, nazwisko, waga from zawodnicy where waga > (select avg(waga) from zawodnicy) -- 3 rodzaje podzapytan --1) w sekcji from: w nawiasy i nadac alias --2) w sekcji select: w nawiasy i mozna opcjonalnie nadac alias --3) w sekcji where: w nawiasy i nie mozna nadac aliasu select imie, nazwisko, wzrost from zawodnicy where wzrost = (select max(wzrost) from zawodnicy) select imie, nazwisko, waga from zawodnicy where waga > (select avg(waga) from zawodnicy) select distinct kraj, imie, nazwisko from (select imie, nazwisko, kraj from zawodnicy where waga > (select avg(waga) from zawodnicy)) t --1 zestawienie: dla kazdego kraju srednia waga select z.imie, z.nazwisko, z.kraj, z.waga, t.sr from zawodnicy z left join (select kraj,avg(waga) sr from zawodnicy group by kraj) t on z.kraj=t.kraj where z.waga>t.sr select * from (select imie, nazwisko, kraj, waga, (select avg(waga) from zawodnicy t where t.kraj=z.kraj group by kraj ) sr from zawodnicy z) k where waga>sr -- 1) wypisz trenerow mlodszych niż ich zawodnicy. select distinct imie_t, nazwisko_t from zawodnicy z right join trenerzy t on z.id_trenera = t.id_trenera where z.data_ur < t.data_ur_t -- 2) wypisz zawodnikow, którzy startowali rzadziej niż -- średnia startów w ich drużynie select * from (select g.imie,g.nazwisko,g.[sr z kraju], count(u.id_zawodow) [liczbaSt] from (select w.id_zawodnika, w.imie, w.nazwisko, t.[sr z kraju] from zawodnicy w left join (select kraj, avg(u.id_zawodow) [sr z kraju] from zawodnicy z left join uczestnictwa u on u.id_zawodnika =z.id_zawodnika group by kraj) t on t.kraj = w.kraj) g left join uczestnictwa u on u.id_zawodnika = g.id_zawodnika group by g.imie,g.nazwisko,g.[sr z kraju]) k where liczbaSt<[sr z kraju] -- 3) wypisz w kolumnie liczby od 1 do 10 select id_zawodnika from zawodnicy where id_zawodnika<11 -- 4) zrób tabliczkę mnożenia w jednej kolumnie. Przykładowy -- wynik to: 1x1=1 -- 1x2=2 -- ..... -- 10x10=100 select convert(varchar,a) + 'x' + convert(varchar,b) + '=' + convert(varchar,a*b) from (select id_zawodnika a from zawodnicy where id_zawodnika<11) t1 cross join (select id_zawodnika b from zawodnicy where id_zawodnika<11) t2 select imie , nazwisko from zawodnicy where waga > 61 intersect select imie, nazwisko from zawodnicy where wzrost > 178 select imie, nazwisko from zawodnicy where waga>61 and wzrost > 178 select imie , nazwisko from zawodnicy where waga > 61 union all select imie, nazwisko from zawodnicy where wzrost > 178 select imie , nazwisko from zawodnicy where waga > 61 except select imie, nazwisko from zawodnicy where wzrost > 178 select imie, nazwisko, kraj from zawodnicy union select imie_t, nazwisko_t, null from trenerzy select imie_t, nazwisko_t, kraj from trenerzy t left join zawodnicy z on t.id_trenera=z.id_trenera union select imie, nazwisko, kraj from zawodnicy select * from zawodnicy select * from trenerzy select * from zawodnicy order by wzrost desc select max(wzrost) from zawodnicy select imie, nazwisko , wzrost from zawodnicy where wzrost = (select max(wzrost) from (select imie, nazwisko, wzrost from zawodnicy except select imie, nazwisko, wzrost from zawodnicy where wzrost = (select max(wzrost) from zawodnicy)) t)