对于 JOIN 中的每个右侧行,我想创建一个序列号,从每个左侧行的 1(或 0)开始。
例子:
create table persons (person_id int, person_name text);
create table places (place_id int, person_id int, place_name text);
insert into persons values (10, 'Aulus Agerius'), (20, 'Numerius Negidius');
insert into places values (10, 10, 'Anytown'), (20, 10, 'Timbuktu'), (30, 20, 'Podunk');
select person_name, place_name
from persons join places using (person_id)
order by person_id, place_id;
期望的结果:
人名 | 地名 | place_seq |
---|---|---|
奥卢斯·艾格瑞斯 | 任何城镇 | 1 |
奥卢斯·艾格瑞斯 | 廷巴克图 | 2 |
努梅里乌斯·内吉迪乌斯 | 波敦克 | 1 |
因此,例如 2 inplace_seq
表示“这是为这个人找到的第二个地方”。
如何创建place_seq
列?