Подсчет повторяющихся строк только на основе 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;