首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一组ID中设置值的CASE语句解决方法

在一组ID中设置值的CASE语句解决方法
EN

Stack Overflow用户
提问于 2017-07-19 17:41:09
回答 2查看 58关注 0票数 1

我在GamePlayers表中有以下数据:

代码语言:javascript
复制
GameId   PlayerId  BotId           
1        100       NULL
1        200       NULL
2        100       NULL
2        NULL      NULL
3        200       NULL
3        NULL      100

我想报告人类/计算机/机器人游戏的百分比。电脑和机器人游戏是分开处理的。如果我把它放到一个CASE语句中,它将是一个简单的

代码语言:javascript
复制
CASE  WHEN PlayerId IS NOT NULL THEN 'Human'
      WHEN PlayerId IS NULL AND BotId IS NULL THEN 'Computer'
      WHEN PlayerId IS NULL AND BotId IS NOT NULL THEN 'Bot'
      END OpponentType

当然,为了删除重复的GameId,我需要按GameId对数据进行分组。

计算机和机器人永远不能相互竞争。人类可以挑战人类,但如果他在30秒后没有得到回应,他将被提供与机器人比赛。人类也可以选择单独与计算机进行游戏。

我需要做的是给一组'Human','Bot‘或'Computer’设置一个值,然后在Power BI上报告它。我如何对数据进行分组,以找出人类对手是否与人类、机器人或计算机对战?

这是我预期的结果集:

代码语言:javascript
复制
GameId   GameType         
1        Human
2        Computer
3        Bot
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-19 18:25:31

您可以在group by查询中使用案例,如下所示

代码语言:javascript
复制
 select 
       gameId, 
       case 
          WHEN count(PlayerId)=2 THEN N'Human'
          WHEN count(BotId) =1 THEN N'Bot'
          WHEN count(BotId) =0 AND count(PlayerId)=1 THEN 'Computer'
          END as OpponentType
    from GamePlayers  group by GameId 
票数 1
EN

Stack Overflow用户

发布于 2017-07-19 18:11:05

我按如下方式使用了您的查询:

代码语言:javascript
复制
Select GameId, 
    case when max(OpponentType) = mIn(opponenttype) and Min(opponenttype) = 'Human' then 'Human' 
        when min(opponenttype) = 'Computer' then 'Computer'
        when min(opponenttype) = 'Bot' then 'Bot' else null end as OpponentType 
    from ( Select GameId , CASE  WHEN PlayerId IS NOT NULL THEN 'Human'
  WHEN PlayerId IS NULL AND BotId IS NULL THEN 'Computer'
  WHEN PlayerId IS NULL AND BotId IS NOT NULL THEN 'Bot'
  END OpponentType
  from #Game ) a
group by gameid

您不需要在子查询中执行对抗类型,而可以在主查询本身中执行此操作

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45186718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档