【发布时间】:2017-02-24 11:11:48
【问题描述】:
我有以下查询,它为单个 id 生成多条记录。我试图弄清楚如何将这些多条记录合并为一条记录:
SELECT DISTINCT id, gender, dateofbirth, city, state, zip
FROM t
这可能会给我以下结果集:
1, M, 2000-01-01, dallas, tx, 12345
1, M, 2000-01-01, NULL, NULL, NULL
我想要的是一条记录:
1, M, 2000-01-01, dallas, tx, 12345
当第二行有不同的数据时,也会出现类似的情况:
1, M, 2000-01-01, dallas, tx, 12345
1, M, 2000-01-01, houston, tx, 67890
在这种情况下,我只想选择其中一条记录并忽略另一条记录,以便每个 id 只有一条记录。
有没有办法在 PostgreSQL 中做到这一点?我试过合并无济于事,想知道是否有办法处理这个问题。
【问题讨论】:
-
所以你在那个表中没有主键,没有唯一列?
-
如果
1, M, 2000-01-01, NULL, NULL, 45678和1, M, 2000-01-01, NULL, 'wa', NULL还有两行(除了您显示的行),您期望什么。您是否总是至少有一行所有列都不为 NULL?
标签: sql postgresql