在一列上拉一行连接

  • 本文关键字:一行 连接 一列 sql
  • 更新时间 :
  • 英文 :


我想为具有匹配街道但以其他方式分隔值的两个人以及数据库中不共享地址的所有记录拉取一条记录,patunique 是表的 ID。

例如:

Select patunique, last, first, birth, street 
from patient p1, patient p2 
where p2.street = p1.street

数据:

帕特独特,最后,第一,出生,街道1,杰克逊,弗雷德,01/20/1972,1234电报街2,杰克逊,弗兰克,11/21/1997,1234电报街3,毕加索,巴勃罗,05/18/1942,5678电话路

预期成果:

帕特独特,最后,第一,出生,街道1,杰克逊,弗雷德,01/20/1972,1234电报街3,毕加索,巴勃罗,05/18/1942,5678电话路

即使在街上使用MAX,它也会提取重复的记录,因为 patunique、last、first 和 birth 是分开的。

--请尝试此查询

CREATE TABLE patient (Patunique INT,Last VARCHAR(50),First VARCHAR(50),Birth DATE,Street VARCHAR(50))
DROP TABLE patient
INSERT INTO patient VALUES
(1,'Jackson','Fred','01/20/1972','Telegraph Street')
,(2,'Jackson', 'Frank','11/21/1997', 'Telegraph Street')
,(3,'Picasso','Pablo','05/18/1942','Telephone Road')
Select P1.patunique, P1.last, P1.first, P1.birth, P1.street 
from patient p1
INNER JOIN(
Select P2.street, min(P2.patunique)patunique
from patient p2
group by P2.street
)p2 on p2.patunique = p1.patunique

最新更新