Tutorial SQL

Przykłady, tutorial, gotowe rozwiązania sql.

Kategoria: SQL Server


Top 5 najwiekszych w grupie


Top 5 największych w grupie


W jaki sposób możemy wyświetlić 5 rekordów z największą wartością dla danej grupy np kraju, oddziału lub departamentu? Nic prostszego możemy użyć CROSS APPLY i TOP 5.

select a.*, b.Name, lp

from 
departament a outer apply (
Select top 5 Name, ROW_NUMBER() over(order by salary desc) lp
from employee e
where
a.Id = e.DepID
order by Salary desc) b



kod do przykładowej bazy.
create table employee (
Id int primary key identity,
DepID int,
Name varchar(128),
Salary int
)

create table departament(
Id int primary key,
Name varchar(128)
)

insert into departament(id, Name) values (1,'Sales'), (2, 'Finance'), (3, 'IT')

truncate table employee
insert into employee (DepID, Name, Salary) values 
(1,'Michal Nowak',5000),
(2,'Anna Nowak',4000),
(3,'Ewa Nowak',7000),
(1,'Anna Kowalska',2000),
(2,'Edyta Kowal',8000),
(3,'Paulina Nowak',8000),
(1,'Paulina Kowalska',3000),
(2,'Jan Smith',5000),
(3,'Iwona Nowakowska',5000),
(2,'Magda Nowina',300),
(1,'Iwona Prostak',8000),
(2,'Damian Nowakowski',4000),
(2,'Magda Nowicka',300),
(1,'Iwona Prosta',8000),
(2,'Damian Nowa',4000),
(2,'Magda Smith',300),
(1,'Iwona Smith',8000),
(2,'Adrian Nowakowski',4000)

powrót















Szkolenia T-SQL, SSIS, Reporting Services, Power BI przez Skype

napisz mariuszhk@op.pl

Książki

Copyright 2010-2011mariuszhk@op.pl

obob ob

Valid HTML 4.01 Transitional

Strona internetowa wykorzystuje pliki cookie zapisywane w pamięci przeglądarki internetowej.

OK