Используйте предложение ограничения строки:
select
concat(strvoornaam, strtussenvoegsel, ' ', strachternaam) as naam,
sum(cast(pu.strscore as int)) as score
from tblpunten pu
join tblpuntencoureur pc on pc.puntenid = pu.id
join tblpersoon pe on pe.id = pc.persoonid
join tblseizoen se on se.id = pc.seizoenid
where pu.id not between 12 and 19 and se.intjaartal = 2019
group by strvoornaam, strtussenvoegsel, strachternaam, pe.strachternaam
order by score desc
offset 6 rows fetch next 1 row only
Это даст вам седьмую строку в наборе результатов.
Примечания:
- псевдонимы таблиц помогают сделать запрос лаконичным и простым для написания
- вы должны квалифицировать все столбцы, которые входят в играть в запросе
С другой стороны, если вы пытаетесь получить звание определенного c человека, то это другое. Вы можете использовать rank()
вместо:
select *
from (
select
concat(strvoornaam, strtussenvoegsel, ' ', strachternaam) as naam,
sum(cast(pu.strscore as int)) as score,
rank() over(order by sum(cast(pu.strscore as int)) desc) rn
from tblpunten pu
join tblpuntencoureur pc on pc.puntenid = pu.id
join tblpersoon pe on pe.id = pc.persoonid
join tblseizoen se on se.id = pc.seizoenid
where pu.id not between 12 and 19 and se.intjaartal = 2019
group by strvoornaam, strtussenvoegsel, strachternaam, pe.strachternaam
) t
where naam = 'Pierre Gasly'