Vyzkoušejte CTE – Common Table Expression:
WITH Salaries AS
(
SELECT
SalaryAmount, ROW_NUMBER() OVER(ORDER BY SalaryAmount DESC) AS 'RowNum'
FROM
dbo.SalaryTable
)
SELECT
SalaryAmount
FROM
Salaries
WHERE
RowNum <= 5
Tím získáte 5 nejlepších platů v sestupném pořadí – můžete hrát s RowNumn
hodnotu a v podstatě načíst jakýkoli kousek ze seznamu platů.
Existují další funkce hodnocení
dostupné v SQL Server, které lze také použít - např. je tam NTILE
který rozdělí vaše výsledky do n stejně velkých skupin (co nejpřesněji), takže byste mohli např. vytvořte 10 skupin takto:
WITH Salaries AS
(
SELECT
SalaryAmount, NTILE(10) OVER(ORDER BY SalaryAmount DESC) AS 'NTile'
FROM
dbo.SalaryTable
)
SELECT
SalaryAmount
FROM
Salaries
WHERE
NTile = 1
Tím se vaše platy rozdělí do 10 stejně velkých skupin – a do skupiny s NTile=1
je skupina „TOP 10 %“ platů.