簡體   English   中英

如何從具有相同值的兩個不同列中選擇一行

[英]How select one row from two distinct column with same value

在此處輸入圖片說明

嗨,我只需要為此表選擇一行..

第 1 行 = 反向(第 4 行)

我的代碼:

    select ROW_NUMBER() OVER() ID, c.localidad, acalle,bcalle
    from (
      SELECT a.localidad, a.calle acalle, b.calle bcalle
      FROM (
        SELECT LOCALIDAD, CALLE 
        FROM TEST.INICIAL
        WHERE CALLE IS NOT NULL
        GROUP BY 1,2
      ) A
      INNER JOIN (
        SELECT LOCALIDAD, CALLE 
        FROM TEST.INICIAL
        WHERE CALLE IS NOT NULL
        GROUP BY 1,2
      ) B ON A.LOCALIDAD = B.LOCALIDAD 
      WHERE SIMILARITY(A.CALLE ,B.CALLE) > 0.45
         AND A.CALLE <> B.CALLE
    ) c
    where acalle not like '%NORTE' 
      and acalle not like '%SUR' 
      and acalle not like '%ESTE' 
      and acalle not like '%OESTE' 
      AND Bcalle not like '%NORTE' 
      and Bcalle not like '%SUR' 
      and Bcalle not like '%ESTE' 
      and Bcalle not like '%OESTE' 
      AND ACALLE NOT LIKE 'PJE%' 
      AND BCALLE NOT LIKE 'PJE%'
      and acalle not like '%BIS'
      and bcalle not like '%BIS' 
      and acalle not like '%CALLE%' 
      AND BCALLE NOT LIKE '%CALLE%'
    order by 1,2,3

使用CASE來確保列值的順序相同(不管它們如何排序,只是從一行到下一行是一致的),構建一個[col1, col2]數組,然后SELECT DISTINCT在那。

testdb=# with orig_output as (
select 1::bigint as id, 'ADROGUE' as localidad, 'JORGE' as acalle, 'JORGE DE KAY' as bcalle UNION ALL
select 2, 'ADROGUE', 'PLAZA ESTABAN ADROGUE', 'ESTEBAN ADROGUE' UNION ALL
select 3, 'ADROGUE', 'ESTEBAN ADROGUE', 'PLAZA ESTABAN ADROGUE' UNION ALL
select 4, 'ADROGUE', 'JORGE DE KAY', 'JORGE'),
make_columns_be_in_same_order AS (
SELECT id, localidad, acalle, bcalle,
  CASE WHEN acalle>bcalle
    THEN ARRAY[acalle, bcalle]
    ELSE ARRAY[bcalle, acalle]
  END AS acalle_and_bcalle
FROM orig_output
)
SELECT DISTINCT ON (acalle_and_bcalle)
id, localidad, acalle, bcalle
FROM make_columns_be_in_same_order;
 id | localidad |        acalle         |     bcalle      
----+-----------+-----------------------+-----------------
  1 | ADROGUE   | JORGE                 | JORGE DE KAY
  2 | ADROGUE   | PLAZA ESTABAN ADROGUE | ESTEBAN ADROGUE
(2 rows)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM