我有以下表格:
CandidateId CandidateName
can132 Mazhar
can132 Mazhar
can133 Raj
can133 Raj
can134 Rahul
can134 Rahul
can134 Rahul
我的SQL查询基于候选ID获取重复。
SELECT CandidateId, COUNT(*) as duplicate
FROM Table_CandidateInfo_Preview
GROUP BY CandidateId
HAVING COUNT(*) > 1
ORDER BY CandidateId
对,我的输出低于输出:
CandidateId duplicate
can132 2
can133 2
can134 3
我需要像最终值4
这样的结果在我的存储过程中发送输出参数,因为三个候选ID有重复且cand132
1次,cand133
1次,{{1} 2次。总和将获得can134
值。
答案 0 :(得分:0)
将您的查询包装在派生表中(略微调整)。 SUM其重复值:
select sum(duplicate)
from
(
SELECT CandidateId, COUNT(*) - 1 as duplicate
FROM Table_CandidateInfo_Preview
GROUP BY CandidateId
HAVING COUNT(*) > 1
) dt
答案 1 :(得分:0)
你似乎想要:
SELECT SUM(duplicate - 1)
FROM (SELECT CandidateId, COUNT(*) as duplicate
FROM Table_CandidateInfo_Preview
GROUP BY CandidateId
HAVING COUNT(*) > 1
) c;
我想要注意的是,如果每行都有唯一的ID,那么您也可以这样做:
select count(*)
from Table_CandidateInfo_Preview cip
where cip.id > (select min(cip2.id)
from Table_CandidateInfo_Preview cip2
where cip2.CandidateId = cip.CandidateId
);
对我而言,这似乎更直接地计算了#34;重复"。我还应该注意到,某些数据库(例如SQLite,Oracle和Postgres)具有可用于此目的的一种或另一种形式的行标识符。
答案 2 :(得分:0)
cd android && ./gradlew clean