как использовать предложение where для row_number (postgresql) - PullRequest
0 голосов
/ 05 декабря 2018
select (select  sum(points) 
        from    points a 
        where   a.userid=userinfo.id 
            and userinfo.type='customer') as customerpoints
        ,* 
from users userinfo
left outer join points pd on pd.userid=userinfo.id 
where  type='customer'
and ( SELECT SUM(points)
      FROM  points a
      WHERE a.userid = userinfo.id
        AND userinfo.type = 'customer')>0                                                                                    
order by customerpoints asc
        ,id asc limit 50

я хочу использовать row_number в приведенном выше запросе и использовать этот номер строки в предложении where

1 Ответ

0 голосов
/ 05 декабря 2018

Не видя образца ваших исходных данных, сложно отследить ошибку, которая вас беспокоит.Следующий пример демонстрирует сортировку по двум столбцам:

select x.*
from (values ('Leo', 6), ('Mickey', 5), ('Don', 7), ('Raf', 6)) x(name, score)
order by 2,1

Возвращает

name    score
Mickey  5
Leo 6
Raf 6
Don 7

И вы можете заметить, что из-за полей сортировки порядок «Дон» находится внизу списка снаименьшее количество баллов, хотя в алфавитном порядке он должен быть на вершине, а «Лео» и «Раф», имеющие одинаковое количество баллов, отсортированы в алфавитном порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...