sql - SQL选择同一列中的多个条件
问题描述
我想在同一列“政党”中根据不同的标准选择美国总统的名字。
我想要实现的是选择在他们的政党任职时间最长的总统的名字。我能够找到每个政党的最长年限,并选择任职这些年限的总统的姓名,但标准不适用于每个政党。请参阅下面的代码:
select name, party, years_served
from president
where years_served in (select max(years_served) from president group by party)
order by years_served desc
解决方案
你可以试试这个:
select name, party, years_served
from president r
where r.years_served = (select max(years_served) from president p where p.party=r.party);
这意味着如果他/她在他/她的政党中的任职年限相同,则选择总统。
r
并且p
只是别名
推荐阅读
- bluetooth-lowenergy - BLE iOS 向 Android gattServer 外围设备发送数据:writeValue:forCharacteristic:type not working
- javascript - JavaScript:使用 Join 使数组成为字符串,使用输入参数作为分隔符 Btw Words --> 替换错误
- python - 为 Django 模型中的评分生成平均值并与其他模型一起返回
- java - 未解决的编译问题:Twitter 无法解析为一个类型
- https - 如何从 Particle 上的网站读取数据
- asp.net - 使用 Kerberos 提供程序的 Windows 身份验证在谷歌浏览器中提示登录详细信息,但在 IE 中没有提示
- ruby-on-rails - Rails 在组查询中使用 Model 方法
- dart - 如何创建包含列表值的多维列表和循环小部件?
- reactjs - 无法从我的 Express 服务器向 React 前端发送响应字符串
- c++ - 如何实现跨 DLL 边界抛出异常?