mysql - 在 MySQL 中过滤和聚合多个列很困难

标签 mysql group-by grouping aggregate-functions

我有一组如下格式的 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/

相关文章:

php - Laravel 中 hasManyThrough 的问题

php - 检查登录时是否未激活激活码。 "ONLY"激活码

sql-server-2000 - 分组时sql server获取第一个值

MySQL,GROUP BY 中的过滤器

php - 如何连接到 heroku 上的外部 mysql 数据库?

mysql - 计算MySQL中记录之间的相似度

TSQL GROUP BY 字符串的一部分

powershell - 按多列进行计数和分组

python - pandas:groupby 多列,连接一列同时添加另一列

r - 使用 dplyr 根据其他列的值更改列的内容