-- dla kazdego kraju wypisz sumaryczną wagę zawodników select * from zawodnicy select kraj, waga from (select kraj, avg(waga) waga, 1 o from zawodnicy group by kraj union select 'total', avg(waga) ,2 from zawodnicy) t order by o select coalesce(kraj,'total'), avg(waga) from zawodnicy group by rollup(kraj) select coalesce(kraj,'total') kraj,avg(waga) sr from (select coalesce(kraj,'brak danych') kraj, waga from zawodnicy) t group by rollup(kraj) -- dla kazdego zawodnika wypisz porę roku, kraj i wagę go drop view zawPory create view zawPory as select kraj, case when month(data_ur) between 3 and 5 then 'wiosna' when month(data_ur) between 6 and 8 then 'lato' when month(data_ur) between 9 and 11 then 'jesien' else 'zima' end [pora roku], waga from zawodnicy select kraj, [pora roku], sum(waga) from zawPory group by cube(kraj, [pora roku]) select * from zawPory pivot ( sum(waga) for [pora roku] in ([wiosna],[lato],[jesien],[zima]) ) p select * from (select kraj, case when month(data_ur) between 3 and 5 then 'wiosna' when month(data_ur) between 6 and 8 then 'lato' when month(data_ur) between 9 and 11 then 'jesien' else 'zima' end [pora roku], waga from zawodnicy) t pivot ( sum(waga) for [pora roku] in ([wiosna],[lato],[jesien],[zima]) ) p select * from zawodnicy select imie, nazwisko,wzrost, dense_rank() over (order by wzrost ) from zawodnicy -- proszę znajdź zawodników 2 co do wielkości select * from (select imie, nazwisko,wzrost, dense_rank() over (order by wzrost desc ) ranga from zawodnicy) t where ranga in (2,4,6) select imie, nazwisko, wzrost, kraj, rank() over (partition by kraj order by wzrost desc) from zawodnicy select imie, nazwisko, kraj, wzrost, CHOOSE(przedzial,'niski','średni','wysoki') from (select imie, nazwisko, wzrost,kraj, ntile(3) over (order by wzrost) przedzial from zawodnicy) t select imie, nazwisko, wzrost, kraj, lag(wzrost,2) over (order by wzrost) from zawodnicy -- dla każdego zawodnika wypisz o ile jest cięższy od poprzedniego select imie, nazwisko, waga, waga-pop from (select imie, nazwisko, waga, lag(waga,1) over (order by waga) pop from zawodnicy) t select imie, nazwisko, wzrost, kraj, lead(wzrost,2) over (order by wzrost) from zawodnicy select imie, nazwisko, wzrost, kraj, sum(wzrost) over (order by wzrost rows between unbounded preceding and 2 following) from zawodnicy create table osoby ( id int identity(1,1) primary key, imie varchar(255) , nazwisko varchar(255), wzrost int, waga decimal, data_ur datetime2 ) drop table osoby select POWER(2,8) select * from osoby insert into osoby values ('jan','kowalski',178,76,'19701224') delete osoby where imie = 'jan' select * from osoby update osoby set imie = 'adam', nazwisko='nowak' where id=9 select * from zawodnicy select imie, nazwisko from zawodnicy where imie like 'mar[^tb]in' select * from zawodnicy create table kraje ( id int primary key identity(1,1), nazwaKraju varchar(255) ) create table slownik ( id int primary key identity(1,1), wartosc varchar(255), typ int, typDanych varchar(255) ) create table opisSlownika ( id int primary key identity(1,1), opis varchar(255), ) insert into opisSlownika values('kraje') insert into opisSlownika values('kolory') insert into opisSlownika values('miasta') insert into slownik values('polska',1) insert into slownik values('niemcy',1) insert into slownik values('niebieski',2) insert into slownik values('warszawa',3)