首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL列A到B列的比较

SQL列A到B列的比较
EN

Stack Overflow用户
提问于 2014-08-12 14:29:46
回答 2查看 335关注 0票数 0

我想确定A列中相同值的多少倍在B列中有多少相同的对应值?我需要一些东西来查看A列中相同的值,看看它们对应的B值是否相等。在下面的示例中,对于Col A中的所有164,它们的B值都不匹配。对于25,它们的B值是匹配的。对于13,它们的B值是匹配的。因此,这个结果应该返回2/3,因为A列中的3个值中有2个匹配。我如何使它工作数百行?

代码语言:javascript
运行
复制
Col A        Col B   
--------------------
 164          42  
 164          51  
 164          13  
 25           10  
 25           10  
 13            4  
 13            4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-12 14:32:41

您可以使用嵌套的group by来完成这一任务。下面是MS Access SQL:

代码语言:javascript
运行
复制
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中每个值的所有值是否相同。然后,外部查询计算比例。

票数 0
EN

Stack Overflow用户

发布于 2014-08-12 14:35:12

查看计数的基本方法:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25266943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档