sql pořadí byl zobrazován požadovaný počet rank

hlasů
1

Dotaz:

SELECT distinct 
rank() OVER (ORDER BY p.service) as rank,
p.service, 
From table_service
Where 1=1

Výstup:
Rank: 1 | Servis: test1
Rank: 2 | Servis: test2
Rank: 3 | Servis: test3

Jak mohu zobrazit pouze Rank 2?

Zkoušel jsem to, ale nefunguje:

SELECT distinct 
rank() OVER (ORDER BY p.service) as rank,
p.service, 
From table_service
Where rank = 2

Nějaký nápad?

Položena 24/09/2018 v 21:25
uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
1

Můžete zkusit použít poddotaz, protože wherenení možné použít název alias dělat podmínku.

SELECT * FROM (
    SELECT 
        rank() OVER (ORDER BY p.service) as rank,
        p.service, 
    From table_service
) t1
where rank = 2
Odpovězeno 24/09/2018 v 21:28
zdroj uživatelem

hlasů
1

Dát svůj dotaz do poddotazu:

select *
from
(
SELECT distinct 
rank() OVER (ORDER BY p.service) as rank,
p.service, 
From table_service
) sub
Where rank = 2;
Odpovězeno 24/09/2018 v 21:30
zdroj uživatelem

hlasů
1

Proč používat hodnost? Největší podporu databází offset/fetchnebo něco podobného:

select p.service,
from table_service p
order by p.service
offset 1 fetch first 1 row only;
Odpovězeno 24/09/2018 v 21:44
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more