我想确定A列中相同值在B列中具有相同对应值的次数?我需要一些东西来查看A列中的相同值,看看它们相应的B值是否相等。在下面的示例中,对于Col A中的所有164,其B值不匹配。对于25,他们的B值匹配。对于13,他们的B值匹配。因此,结果应返回2/3,因为A列匹配中的3个值中有2个。如何使这个行工作数百行?
Col A Col B
--------------------
164 42
164 51
164 13
25 10
25 10
13 4
13 4
答案 0 :(得分:1)
查看计数的基本方法:
SELECT A.A,
COUNT(A.A) AS NUM_A,
COUNT(B.B) AS NUM_B_MATCH,
FROM TABLE A
LEFT JOIN TABLE B ON A.A = B.B
GROUP BY A.A
获得2/3
SELECT SUM(iff(B.B IS NOT NULL,1,0)) / COUNT(A.A) AS Percent
FROM TABLE A
LEFT JOIN TABLE B ON A.A = B.B
答案 1 :(得分:0)
您可以使用嵌套的group by
执行此操作。这是MS Access SQL:
select avg(AllSame)
from (select colA,
iif(min(colB) = max(colB), 1.0, 0.0) as AllSame
from table as t
group by colA
) as t;
子查询生成一个标志,指定colA
中每个值的所有值是否相同。外部查询然后计算比例。