Подсчет повторяющихся строк только на основе 2 столбцов

Предположим, у меня есть следующая таблица с именем test с 2 колонками A а также B
A B
------
1 2
2 3
1 2
3 4
Я хотел бы использовать запрос, который будет возвращать только количество повторяющихся строк (1 и 3 в этом случае) на основе столбцов A а также B комбинированный, поэтому возвращаемое количество должно быть 2,
SELECT 'Duplicates' As Warning, count(*) AS RowCount FROM test where(запрос идет здесь), спасибо.

4 ответа

Если я вас правильно понял, если в вашем примере (2,3) была еще одна строка, то число должно быть 4. Если это так, используйте это:

SELECT 'Duplicates' as warning,sum(cnt) FROM (
    SELECT a,b,COUNT(*) as cnt
    FROM YourTable
    GROUP BY a,b
    HAVING count(*) > 1
)

Чтобы получить как парное использование,

SELECT CONCAT(A,'-',B) AS Duplicate Pair,COUNT(A) AS COUNT FROM `test` GROUP BY A,B HAVING COUNT(A) > 1;

ИЛИ Чтобы получить как индивидуальное использование,

SELECT A AS Duplicate1,B AS Duplicate2,COUNT(A) AS COUNT FROM `test` GROUP BY A,B HAVING COUNT(A) > 1;
SELECT A, B, COUNT(*) as Count FROM Test GROUP BY A, B HAVING COUNT(*) > 1

Вы можете использовать подзапрос для этого:

select 'Duplicates' as warning, count(*) as rowcount
from (select a, b, count(*) as cnt
      from test t
      group by a, b
      having cnt > 1
     ) t;
Другие вопросы по тегам