SQL 不同的检索同一记录的所有其他列
SQL DISTINCT RETRIEVING ALL OTHER COLUMNS OF THE SAME RECORD
我正在使用 PostgreSQL
我有一个 table,其中包含有关潜在客户的信息,如下所示:
ID | Phone | link
1 | 3105637247 | https://link_for_id_1
2 | 3105637247 | https://link_for_id_2
3 | 3105637247 | https://link_for_id_3
4 | 3153333651 | https://link_for_id_4
5 | 3153333651 | https://link_for_id_5
目的是使用此数据向销售团队报告。但是要求是不会有重复的phone个数字。在这种情况下,我想要的输出是:
ID | Phone | link
1 | 3105637247 | https://link_for_id_1
5 | 3153333651 | https://link_for_id_5
为此,我正在使用此查询:
SELECT DISTINCT Phone,
max(ID), -- Here using aggregated functions to allow ID and link to visualize
max(link)
FROM MyTable
但这种方法有时会给我提供与我的 ID 不对应的链接:
ID | Phone | link
1 | 3105637247 | https://link_for_id_3
5 | 3153333651 | https://link_for_id_4
有没有办法在 ID 和 Link 对应同一记录的条件下检索唯一电话?
你可以使用 Postgresql 的 DISTINCT ON
:
select distinct on (Phone) t.*
from Mytable t
order by Phone
或者NOT EXISTS
:
select t.*
from Mytable t
where not exists (select 1 from Mytable t2
where t2.Phone = t1.Phone
and t2.id < t1.id)
我正在使用 PostgreSQL
我有一个 table,其中包含有关潜在客户的信息,如下所示:
ID | Phone | link
1 | 3105637247 | https://link_for_id_1
2 | 3105637247 | https://link_for_id_2
3 | 3105637247 | https://link_for_id_3
4 | 3153333651 | https://link_for_id_4
5 | 3153333651 | https://link_for_id_5
目的是使用此数据向销售团队报告。但是要求是不会有重复的phone个数字。在这种情况下,我想要的输出是:
ID | Phone | link
1 | 3105637247 | https://link_for_id_1
5 | 3153333651 | https://link_for_id_5
为此,我正在使用此查询:
SELECT DISTINCT Phone,
max(ID), -- Here using aggregated functions to allow ID and link to visualize
max(link)
FROM MyTable
但这种方法有时会给我提供与我的 ID 不对应的链接:
ID | Phone | link
1 | 3105637247 | https://link_for_id_3
5 | 3153333651 | https://link_for_id_4
有没有办法在 ID 和 Link 对应同一记录的条件下检索唯一电话?
你可以使用 Postgresql 的 DISTINCT ON
:
select distinct on (Phone) t.*
from Mytable t
order by Phone
或者NOT EXISTS
:
select t.*
from Mytable t
where not exists (select 1 from Mytable t2
where t2.Phone = t1.Phone
and t2.id < t1.id)