我有一组如下格式的 MySQL 数据:
acode bcode unique_code
BA1100018 SE OX120013
BE1100001 CS CS140005
BE1100001 SE SE140079
CS1400000 CS CS140006
CS1400000 CS CS140011
CS1400000 CS CS140009
CS1400000 CS CS140013
OX1100021 OX OX110010
OX1100021 SE OX110013
OX1100021 OX OX980141
我正在尝试确定哪个 acode id 具有多个不同的 bcode id。我想返回一组数据来过滤掉不相关的数据。在这种情况下,数据将按如下方式返回:
acode bcode unique_code
BE1100001 CS CS140005
BE1100001 SE SE140079
OX1100021 OX OX110010
OX1100021 SE OX110013
OX1100021 OX OX980141
我最初的尝试是:
select count(bcode),acode from mydataset group by acode having
count(bcode)>1
我意识到这不会返回 bcode,所以我尝试了各种排列。没有取得太大成功。我一直在努力尽可能高效地完成这项工作,因为我正在处理一个大型数据集,但在维护我需要的细节的同时,我在聚合技术方面遇到了困难。有人能帮忙吗?谢谢
最佳答案
这对你有用
SELECT main.bcode, main.acode FROM mydataset main
INNER JOIN (SELECT acode, count(DISTINCT bcode) AS cnt FROM mydataset GROUP BY acode HAVING cnt>1) AS sub
ON main.acode=sub.acode
关于mysql - 在 MySQL 中过滤和聚合多个列很困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45504287/