sql - 用于将多个变量计数为“Both”的 SQL 函数
问题描述
在这种情况下,有两列。
- A 列 = 案例 ID(记录的唯一 ID)
- B 列 = 性别 可能的值为男性、女性
警告 如果一个案例 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 语句和子查询来完成。但是,我希望有更好的解决方案。
解决方案
使用聚合和case
表达式:
select col1,
(case when min(gender) = max(gender) then min(gender)
else 'both'
end) as gender
from cases c
group by col1;
推荐阅读
- git - 如何确定 git fixup 提交的目标提交?
- ios - 当使用 iOS 捆绑标识符限制 Google Places API 密钥时,附近的搜索不起作用
- android - 在回收站视图中滚动单元格时,Android 折叠单元格库未正确获取宽度
- php - EC2 用户数据挂在“检查初始化脚本...”ubuntu php
- python - 在 shell 中执行 python 字典键/值作为命令
- amazon-web-services - Amazon EC2 预留实例可以取消并获得退款吗?
- node.js - ldapjs 什么都不返回,但 ldapsearch 工作并且调试日志显示返回了`SearchEntry`
- bash - 为什么交互式 rebase 会打开 VS Code,为什么我不能从终端运行 WebStorm?
- sql - 使用特定值更新特定列
- python - 如何在python中将数据框与分号合并?