Mysql

選擇在表中多次出現(計數)的唯一值對

  • December 22, 2017

如何檢索具有不止一次出現的唯一值對的行…這是我正在嘗試的範例。

SELECT 
column_fk_id1, column_fk_id2,
COUNT(distinct column_fk_id1, column_fk_id2) AS unique_pair_repeats
FROM table
WHERE column_fk_id1 IS NOT NULL
GROUP BY column_fk_id1, column_fk_id2
HAVING unique_pair_repeats > 2

您幾乎可以使用,只需刪除 distinct 並將 > 2 更改為 > 1。 distinct 不是必需的,因為分組處理它並且 > 2 正在尋找具有至少三個條目而不是兩個條目的東西。

drop table tab1;
create table tab1 as (select 1 column_fk_id1,2 column_fk_id2 from dual);
insert into tab1 values (1,2);
insert into tab1 values (2,1);
insert into tab1 values (3,4);
insert into tab1 values (4,3);
insert into tab1 values (5,5);
insert into tab1 values (6,7);
insert into tab1 values (6,7);
insert into tab1 values (6,8);
commit;


SELECT column_fk_id1, column_fk_id2, COUNT(*) AS unique_pair_repeats
FROM tab1
WHERE column_fk_id1 IS NOT NULL
GROUP BY column_fk_id1, column_fk_id2
HAVING count(*) > 1;

COLUMN_FK_ID1 COLUMN_FK_ID2 UNIQUE_PAIR_REPEATS
------------- ------------- -------------------
           1             2                   2
           6             7                   2

2 rows selected.

引用自:https://dba.stackexchange.com/questions/193834