mysql - 当 3 个字段组合为唯一时如何编写查询
问题描述
我的数据库中有一张这样的表
xtra_scope_id + platform_id + player_uuid 组合在一起是唯一的。
给定一个 xtra_scope_id(假设为 2),我想编写一个返回 2 列的查询:
- player_uuid
- 与 player_uuid 相关的行数,按 xtra_scope_id 对这些行进行分组(并忽略 platform_id 可能生成的多行)(该玩家有多少 xtra_scope_id?)
Player_uuid 0069ce60-93b2-44a0-baf1-6fe7200e4946 应该只有 1 作为计数,因为他只有 xtra_scope_id = 2 的行
解决方案
根据您的问题的标题,您可以使用count(distinct)
:
select player_id,
count(distinct xtra_scope_id, platform_id, player_uuid) as uniq_combos
from t
group by player_id;
推荐阅读
- python-3.7 - Python 教程中的 NoReverseMatch 错误
- asp.net-core - .net core web api上传文件失败,请求错误
- unit-testing - 在 BDD 中测试副作用
- javascript - Three.js 动画混合器不播放?
- arrays - 如何找到多个数组中的最大元素值?
- jquery - JW Player - 禁用快进在 Microsoft Edge/IE11/Safari 中不起作用
- sql - 在子查询中使用自连接
- excel-formula - 如果结果高于阈值,则减去金额,没有重复的公式
- excel - VBA 出现问题,旨在防止在保存时编辑具有值的单元格
- javascript - 使用模式 Bootstrap-vue 在背景上获取事件点击