在psql 9.5.6上,我想打印所有ID仅相差一个的名称。
因此输入
name | id
Harry | 12
Harry | 13
Steven | 14
Steven | 16
Goldberg | 21
输出应为
harry
答案 0 :(得分:1)
您可以使用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;
答案 1 :(得分:1)
Select name from table
group by name having
max(id)- min(id)=1;
我认为您通过查看输出按组的名称询问了ID差异。可以尝试上面的方法。