mysql - MySQL 语句仅返回每个 ID 具有完全相同数量的行
问题描述
桌子t1
id | provider
_________
1 | bob
1 | ted
2 | bob
2 | bob
2 | ted
2 | ted
3 | bob
3 | bob
3 | ted
3 | ted
3 | joe
3 | joe
4 | bob
4 | bob
4 | ted
4 | joe
4 | joe
返回 id 的 MySQL 语句,其中所有名称在每个 ID 中显示的数量相同。对于 ID 4,名称“ted”仅出现一次,而其他名称出现两次,因此将从结果中排除。
id
__
1
2
3
解决方案
使用两个级别的聚合:
select id
from (select id, name, count(*) as cnt
from t1
group by id, name
) ni
group by id
having min(cnt) = max(cnt);
推荐阅读
- python - 为什么tensorflow中的这个RNN不学习?
- c - 将 malloc 用于 2D 数组时出现分段错误
- python - Selenium:从新打开的选项卡中抓取数据
- python - 使用带有 sqlite 的 sqlalchemy 使用 pandas to_sql 自动提交
- laravel - laravel S3 临时 URL 的安全性如何?
- c++ - 操作二维整数数组时堆栈溢出
- java - 无法写入 JSON:无法找到 id 为 0 的 com.demo.model.Control;
- outlook - 如何使用 Outlook 插件(Office 插件)将 Outlook 附件上传到 Web 服务?
- python - 在 Maya python 中,即使场景中不存在对象(字符串的一部分)也运行命令
- laravel - 关系检索用户电子邮件