Mysql 当三个字段组合为唯一字段时,如何编写查询
我的数据库中有一张这样的表 xtra_scope_id+platform_id+player_uid组合在一起是独一无二的 给定一个xtra_scope_id(假设为2),我想编写一个返回2列的查询:Mysql 当三个字段组合为唯一字段时,如何编写查询,mysql,sql,Mysql,Sql,我的数据库中有一张这样的表 xtra_scope_id+platform_id+player_uid组合在一起是独一无二的 给定一个xtra_scope_id(假设为2),我想编写一个返回2列的查询: 游戏者 与该播放器相关的行数,按xtra\u scope\u id对这些行进行分组(忽略platform\u id可以生成的多行)(该播放器有多少个xtra\u scope\u id?) 比如说 玩家_uuid 0069ce60-93b2-44a0-baf1-6fe7200e4946应该只有1
玩家_uuid 0069ce60-93b2-44a0-baf1-6fe7200e4946应该只有1个作为计数,因为他只有xtra_scope_id=2的行根据问题的标题,您可以使用
计数(不同)
:
请参阅:不相关的注释与答案最为相似,但它看起来有点像wierd数据,为什么
platform\u id
和created\u at
可以NULL
(“对于SQL来说未知”)@RaymondNijland,这与问题确实无关:)顺便说一下,我们想要清理这些数据。我想忽略platform\u id,基本上我想数一数每个玩家有多少个xtra_scope_id。我想我可以修改您的查询删除平台id。Thanks@Giggioz . . . 问题明确指出:“xtra_scope_id+platform_id+player_uuid组合在一起是唯一的。”但您可以修改答案以满足您的需要。阅读要点2。无论如何,感谢您分享您的解决方案,因为我能够解决我需要的查询。
select player_id,
count(distinct xtra_scope_id, platform_id, player_uuid) as uniq_combos
from t
group by player_id;