sql - 在 SQL 中,当它可能有两个不同的观察值时,如何选择唯一的用户 ID?
问题描述
我有一个包含人名和国籍的表格。一个人可能有双重国籍,但如果他们有美国国籍,我只想要那个人的那一行。
前任:\
Name Citizenship\
John US\
John England\
Jim Germany\
Mark US\
Mark Belgium
预期产出
Name Country\
John US\
Jim Germany\
Mark US
提前感谢您的帮助。
解决方案
您可以使用ROW_NUMBER()
窗口函数,如下所示:
select *
from (
select name, citizenship,
row_number() over(partition by name
order by case when citizenship = 'US' then 1 else 2 end, citizenship
) as rn
from t
) x
where rn = 1
推荐阅读
- swift - Swift:maximumFractionDigits 在更改货币时无法按预期工作
- graphql - 我只能在 Appync 上使用 GraphQL 中的主键进行查询?
- python - keras 变分自编码器损失函数
- ios - Swift - 如何更新 ARAnchor 以跟随相机的位置
- curl - 在 GCP 实例中安装 Plesk 时出现“cURL 无法与许可证服务器通信”
- yum - 如何创建使用 setcap 并在 dnf/yum (fedora/redhat) 和 zypper (openSuse) 上工作的 RPM 包
- git - 清理不需要提交和无关分支的 Git 分支
- java - 我得到片段 id 的无视图
- json - Web 服务(使用按钮通过 JQUERY 加载 JSON 数据)
- python - 在 Python 中使用字符串连接函数时如何跳过“\n”?