首页 > 解决方案 > 当 3 个字段组合为唯一时如何编写查询

问题描述

我的数据库中有一张这样的表

在此处输入图像描述

xtra_scope_id + platform_id + player_uuid 组合在一起是唯一的。

给定一个 xtra_scope_id(假设为 2),我想编写一个返回 2 列的查询:

  1. player_uuid
  2. 与 player_uuid 相关的行数,按 xtra_scope_id 对这些行进行分组(并忽略 platform_id 可能生成的多行)(该玩家有多少 xtra_scope_id?)

例如 在此处输入图像描述

Player_uuid 0069ce60-93b2-44a0-baf1-6fe7200e4946 应该只有 1 作为计数,因为他只有 xtra_scope_id = 2 的行

标签: mysqlsql

解决方案


根据您的问题的标题,您可以使用count(distinct)

select player_id,
       count(distinct xtra_scope_id, platform_id, player_uuid) as uniq_combos
from t
group by player_id;

推荐阅读