Професионална програма
Loading...
+ Нов въпрос
SvilenPavlov avatar SvilenPavlov 11 Точки

DB - Data Aggregation: Problem 19. *3rd Highest Salary

Здравейте, приятели!

Решавам тази задача успешно, поне на хартия (т.е. извън джъдж).

Ръчно прорверих дали стойностите отговарят, но съдията не ми дава точки. :(

Ето това е query-то ми:

WITH InnerTable AS
    (
    SELECT 
         ROW_NUMBER() OVER (PARTITION BY DepartmentID ORDER BY               DepartmentID,Salary DESC) AS ROW#
        ,DepartmentID,Salary
        FROM Employees
    )
SELECT DepartmentID,Salary as ThirdHighestSalary
FROM InnerTable
WHERE ROW#=3
ORDER BY DepartmentID

 

Единственото, което ме съмнява е тази част от условието: "if there is such.", т.е. на 16-ти отдел нямам 3 заплати и съоъветно нищо не изписвам там. Това може ли да е проблема и ако да, какво трябва да напиша 16. - 000.00?

 

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

Тагове:
0
Module: C# DB
sukalu88 avatar sukalu88 46 Точки

Thank you for providing this interesting and very interesting topic information. I will update your next articles regularly. atari breakout

-3
goalken avatar goalken 7 Точки

Your article is very useful, the content is great, I have read a lot of articles, but for your article, it left me a deep impression, thank you for sharing. run 3

0
Elena123456 avatar Elena123456 229 Точки

Колеги, изгубих поне час за да търся решение в Stackoverflow на въпросната задача за намирането на третата висока заплата, но така и не ми сработи нищо от кода, който видях. В отчаянието си накрая се сетих за Comman Table Expression и за Dense_Rank.

И  отново искам да споделя с вас радостта си от използването на Comman Table Expression и значителното опростяване на решението. Нещо толкова просто за използване, а прави заявката толкова четима и лесна за използване (задачата е със звездичка).

Не знам дали е най-доброто възможно решение (сигурно не е), но работи и му се кефя много!smiley

https://pastebin.com/SfDCPK94 

 

0
05/01/2022 23:17:39