postgreSQL - ВЫБЕРИТЕ все строки, где идентификатор отличается только на один - PullRequest
0 голосов
/ 02 декабря 2018

В psql 9.5.6 я хотел бы напечатать все имена, в которых идентификатор отличается только на единицу.

Таким образом, при вводе

name     | id
Harry    | 12
Harry    | 13
Steven   | 14
Steven   | 16
Goldberg | 21

вывод должен быть

   harry

Ответы [ 2 ]

0 голосов
/ 02 декабря 2018
    Select name  from table
       group by name having 
      max(id)- min(id)=1;

Я думаю, что вы спросили разницу идентификаторов для каждого имени в группе, увидев вывод.Можете попробовать выше.

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

Вы можете использовать lead() или lag():

select t.name
from (select t.*,
             lag(id) over (partition by name order by id) as prev_id
      from t
     ) t
where prev_id = id - 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...