使用子查询获取最低值
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;
这个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;