【问题标题】:SQL case statement with multiple IDS showing repeated values具有多个 IDS 的 SQL 案例语句显示重复值
【发布时间】:2021-11-25 21:10:37
【问题描述】:

我知道下面的 case 语句选择了第一个真条件:

SELECT 
   CASE 
      WHEN 1/1 = 1 THEN 'Case 1'
      WHEN 2/2 = 1 THEN 'Case 2'
   END;

我遇到一个问题,其中一个用户似乎在多行中同时拥有案例 1 和案例 2。

下图显示用户 id aaaa 在每个案例评估中出现多次。我正在寻找一种方法让我的 sql 只为用户 aaaa 产生一个结果,即使用户 aaaa 在表中出现 100 次。我希望它为该用户显示第一个真实结果。

Outcome

expected result

【问题讨论】:

  • 下面的图片 - 没有图片。但是不要解决这个问题,编辑您的问题并将示例数据和预期结果添加为 text
  • 已编辑以添加预期结果和结果。数据分类

标签: sql case


【解决方案1】:
SELECT DISTINCT
   CASE 
      WHEN 1/1 = 1 THEN 'Case 1'
      WHEN 2/0 = 1 THEN 'Case 2'
   END as OutCome,
UserId
FROM mytable

SELECT 
   CASE 
      WHEN 1/1 = 1 THEN 'Case 1'
      WHEN 2/0 = 1 THEN 'Case 2'
   END as OutCome,
UserId
FROM mytable
GROUP BY OutCome, UserId

【讨论】:

  • 这很简单。我已经编辑了问题以反映我想要实现的目标。
  • @Yemisi 如果不想重复,为什么要显示第一个“aaaa”?
  • 那是我的错误。我已经编辑了它
  • 如果这是预期的结果,为什么我的回答对您没有帮助?
  • 我没有用你的逻辑得到不同的用户 ID
猜你喜欢
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 2020-03-24
  • 2011-06-19
  • 1970-01-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多