mysql - 从多个最小值返回当前位置
问题描述
我有 4 张表,分别是教育程度、个人详细信息、当前位置和收入。教育与个人信息挂钩,个人信息与当前位置单独挂钩(不要问为什么,老DB)。收入也与个人信息有关。
我试图确定教育水平最低但收入水平最高的人目前居住在哪里。问题出现了,我有大约 30 个人,他们的教育水平(相同)最低,收入水平相同。
当前代码如下:
select p.name,
min(e.level),
max(i.income),
l.city
from education as e
join person_det as p
on e.person_ID = p.ID
join location as l
on p.CityID = l.CityID
join income as i
on p.job_ID = i.job_id
Order by e.level ASC, i.income DESC;
但是,这似乎只返回 1 人,而不是我需要的所有人。
关于如何使其适用于多个标准的任何建议?
解决方案
由于min(e.level0)
. 您可以尝试按 对列表进行排序e.level ASC, i.income DESC
,然后查看前几项。
否则,我认为您需要使用嵌套查询。内部查询将确定min(e.level)
,外部查询将找到匹配的记录min_e
,按 i.income DESC 排序。除了最大 i.income 之外,很难打印其他信息。
尝试这样的事情:
select p.name, e.level, i.income, l.city
from person as p
join education as e on e.person_ID=p.ID
join income as i on p.job_ID=i.job_id
join location as l on p.CityID=l.CityID
where e.level = (select min(level) from education)
order by i.income DESC;
推荐阅读
- apache-kafka - Kafka HDFS Sink Connector Protobuf 未写入
- python - XGBoost 中的自定义折叠
- android - Game Maker Studio - 创建登录系统问题卡住了
- python - 归并排序的问题。运行后,它将永远运行。我无法找出代码中的错误
- android - 不能在jetpack compose上将背景设置为白色
- windows - 如何获取批处理文件的路径
- php - 删除按钮从不返回或重定向(从不响应)
- python - 合并 netCDF 文件(包括先前建议的失败尝试)
- c# - 如何在 Blazor 应用程序中从 Http.PutAsJsonAsync 传递多个字符串值
- c++ - Eclipse IDE 未显示正确的输出