首页 > 解决方案 > 用于将多个变量计数为“Both”的 SQL 函数

问题描述

在这种情况下,有两列。

警告 如果一个案例 ID 与多个性别相关联,它可以有多个记录。

示例数据集:

ColumnA  ColumnB
Case001  Male        
Case001  Female 
Case002  Male 
Case003  Female 
data set continues... 

问题:我想将结果分类为 Case001,其中有两个结果为“Both”。解决此解决方案的最佳方法是什么?是否有公式或标准方法来实现这一点?

样本所需数据集:

ColumnA  ColumnB
Case001  Both           
Case002  Male 
Case003  Female 
data set continues... 

谢谢!

我可以用 case 语句和子查询来完成。但是,我希望有更好的解决方案。

标签: sqlfunctionclassification

解决方案


使用聚合和case表达式:

select col1,
       (case when min(gender) = max(gender) then min(gender)
             else 'both'
        end) as gender
from cases c
group by col1;

推荐阅读