使用子查询获取最低值

Getting the lowest value with a subquery

这个Query也可以写成子查询吗?

我有:

SELECT name, lifeExpectancy from country
WHERE lifeExpectancy IS NOT NULL
ORDER BY lifeExpectancy ASC
LIMIT 1

结果应该是什么:

name     | lifeExpectancy
-------------------------
Zambia   |           37.2

当然可以:

SELECT name, lifeExpectancy from country
WHERE lifeExpectancy = (SELECT MIN(lifeExpectancy) FROM country)
LIMIT 1

您仍然需要 LIMIT 1 以防有多个国家/地区共享最长预期寿命。如果已知 lifeExpectancy 是唯一的,至少对于最大值而言是唯一的,或者您可以在第一名并列时返回多行,则可以省略 LIMIT 1:

SELECT name, lifeExpectancy from country
WHERE lifeExpectancy = (SELECT MIN(lifeExpectancy) FROM country)

使用这个:

SELECT name, MIN(lifeExpectancy) AS lifeExpectancy from country;