Софтуерно Инженерство
Loading...
NiKoev avatar NiKoev 1 Точки

11. Find All Employees with Rank 2 - Built-in Functions

Здравейте колеги,

Имам този код от предходна задача:

SELECT EmployeeID, FirstName, LastName, Salary,
    DENSE_RANK() OVER   
      (PARTITION BY Salary ORDER BY EmployeeID) AS [Rank]  
    FROM Employees   
  WHERE Salary BETWEEN 10000 AND 50000   
  ORDER BY Salary DESC;

В условието на задачата се казва, че след като вече съм ги клалифицирал по ранкове, трябва да покажа само работници с ранк 2. От досва време се мъча и в интернет търсих доста, но може би не мога да задам правилно въпроса. Единнственото логично нещо което ми хрумна бе WHERE [Rank] = 2, но ми казва че такава колона не съществува, което е логично, тя е само за view-тo. Моля за млако помощ,

Благодаря, предварително!

 

0
Databases Basics
VasilKotsev avatar VasilKotsev 782 Точки
Best Answer

Вложен селект ти трябва или нова таблица:

SELECT *
FROM (
       SELECT EmployeeID,
              FirstName,
              LastName,
              Salary,
              DENSE_RANK() over (partition by Salary ORDER BY EmployeeID) AS Rank
       FROM Employees
       WHERE Salary BETWEEN 10000 AND 50000) AS MyTable
WHERE Rank = 2
ORDER BY Salary DESC

 

0
NiKoev avatar NiKoev 1 Точки

Благодаря много!

0