sql - 在表慢速性能中搜索重复项
问题描述
我试图找到fixtures
表中可用的重复记录,所以我写了这个查询:
SELECT *
FROM fixtures f
INNER JOIN (SELECT *
FROM fixtures s
GROUP BY s.match_id
HAVING COUNT(player_id) > 1) dup
ON m.match_id = dup.match_id;
但是查询真的很慢,表中只有1000条记录。这是可用的记录:
player_id | match_id | team_id
19014 2506172 12573
19014 2506172 12573
19015 2506172 12573
19016 2506172 12573
19016 2506172 12573
19016 2506172 12573
查询应该返回重复的 19016 和 19014 播放器,我做错了什么?
解决方案
如果您要在所有三列中寻找欺骗,我不明白您为什么需要加入。
SELECT player_id, match_id, team_id, count(*)
FROM fixtures
GROUP BY player_id, match_id, team_id
HAVING COUNT(*) > 1
推荐阅读
- android - Android 资源链接失败 < :app:processDebugResources
- java - 在 ExoPlayer2 上找不到同步字节 m3u8
- r - 用数值 R 替换字符属性
- mysql - 查询以生成预期结果
- python - 解析从 Spark 数据帧写入的 TFRecord 文件中的字节字符串时,为什么我无法解析所有数据?
- c++ - 基于 std::chrono::high_resolution_clock 的帧定时器
- ios - 构建 Ionic 应用程序时出现依赖错误
- r - 在 Factoextra 上更改形状
- javascript - DOM 外的过渡
- python - 带有高速公路 python 的 websocket 中继