【发布时间】:2017-12-14 02:01:32
【问题描述】:
如何从两列中选择每个值只显示一次?
例如。从此表:
Column A Column B
-------------------------------------------------------------------------
02131d36-06cc-408e-9e40-1de65fbf37f4 7495fc05-e244-426c-bdae-a5ee121be510
11c32339-1b77-46e1-9215-0b1d4ec0b1d3 7495fc05-e244-426c-bdae-a5ee121be510
39cb3ebd-bb7f-4023-ab44-65a0f3e4d6d2 7b9fb1b0-61d4-4424-af83-33b1b7e77bc1
39cb3ebd-bb7f-4023-ab44-65a0f3e4d6d2 7495fc05-e244-426c-bdae-a5ee121be510
94e66d74-f0ce-472b-ad68-a98e267038b8 7495fc05-e244-426c-bdae-a5ee121be510
ab8130c7-e6a3-46cc-9ebc-0f8aca698169 7b9fb1b0-61d4-4424-af83-33b1b7e77bc1
ab8130c7-e6a3-46cc-9ebc-0f8aca698169 7495fc05-e244-426c-bdae-a5ee121be510
94e66d74-f0ce-472b-ad68-a98e267038b8 7b9fb1b0-61d4-4424-af83-33b1b7e77bc1
02131d36-06cc-408e-9e40-1de65fbf37f4 c597af82-58d5-4630-87e5-939898cc68ed
11c32339-1b77-46e1-9215-0b1d4ec0b1d3 c597af82-58d5-4630-87e5-939898cc68ed
39cb3ebd-bb7f-4023-ab44-65a0f3e4d6d2 c597af82-58d5-4630-87e5-939898cc68ed
ab8130c7-e6a3-46cc-9ebc-0f8aca698169 c597af82-58d5-4630-87e5-939898cc68ed
94e66d74-f0ce-472b-ad68-a98e267038b8 c597af82-58d5-4630-87e5-939898cc68ed
拉出这个(A和B都不同):
02131d36-06cc-408e-9e40-1de65fbf37f4 7495fc05-e244-426c-bdae-a5ee121be510
ab8130c7-e6a3-46cc-9ebc-0f8aca698169 7b9fb1b0-61d4-4424-af83-33b1b7e77bc1
94e66d74-f0ce-472b-ad68-a98e267038b8 c597af82-58d5-4630-87e5-939898cc68ed
我知道有几种可能的组合,我想要任何一种其中之一,但不是全部。
该表由 B 的不同值和 A 的不同值的笛卡尔积的子集组成。
我一直在干预窗口函数和分组依据,但还没有让它工作。
【问题讨论】:
-
我可能会去看看 DISTINCT ON。
-
A 列中的“39cb3ebd-bb7f-4023-ab44-65a0f3e4d6d2”和“11c32339-1b77-46e1-9215-0b1d4ec0b1d3”在哪里?我期待更多的记录。还是我错了?
-
哦,还有第三列,它们被过滤掉了!我应该说它只是笛卡尔积的一个子集。
标签: sql postgresql distinct distinct-values distinct-on