gpt4 book ai didi

sql - 如何获取唯一的 id 对行?

转载 作者:行者123 更新时间:2023-11-29 13:02:53 24 4
gpt4 key购买 nike

我有这张用户对表:

table

我怎样才能选择行以便我有一对?例如,如果我有 1-2,我不需要 2-1。所以这是所需的输出:

1 | 2
4 | 11
5 | 6
7 | 8

也许这是查询变得过于复杂的情况,最好只获取图像的结果,然后在应用程序中处理结果集。

我使用 PostgreSQL,如果它有助于优化查询的话。

最佳答案

您可以使用 least()greatest() 函数执行此操作:

select distinct least(user_id, pair_id), greatest(user_id, pair_id)
from userpairs;

此方法有可能返回表中实际上不存在的一对(例如,如果出现“(9,3)”但没有“(3,9)”)。如果你只想要表中的实际对,你可以这样做:

select user_id, pair_id
from userpairs up1
where user_id <= pair_id or
not exists (select 1
from user_pairs up2
where up2.user_id = up1.pair_id and up2.pair_id = up1.user_id
);

如果原始数据中可能存在重复项,那么您也需要在此处select distinct。否则没有必要。

关于sql - 如何获取唯一的 id 对行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com