为什么 ALL(SELECT) 无法获得最大值
why ALL(SELECT) doesn't work to get max value
我正在 Hackerrank (Hackerrank Question) 的 Weather Observation Station 15 上工作
它问
Query the Western Longitude (LONG_W) for the largest Northern Latitude (LAT_N) in STATION that is less than 137.2345 . Round your answer to decimal places.
STATION Table 有 5 列:ID、CITY、STATE、LAT_N、LONG_W。
下面是我的查询,我想弄清楚为什么它不起作用。
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
当我尝试不同的查询时,这有效
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N = (SELECT MAX(LAT_N) FROM STATION WHERE LAT_N < '137.2345')
第一个查询有什么问题?谢谢。
这个查询:
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
将 return 所有 LAT_N
大于或等于 '137.2345'
的行,因为它缺少附加条件。
应该写成:
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N < '137.2345'
AND LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
此查询:
select round (long_w,4)
from station
where lat_n<137.2345
order by lat_n desc
limit 1;
首先,它选择所有 lat_n 小于 137.2345 的行。
其次,它按lat_n降序排列结果,所以第一个
行具有小于 137.2345 的最大 lat_n。
第三, 我设置了一个等于 1 的限制只得到第一行,然后我使用 round 函数得到 long_w 的回合。
语法
ROUND(数字,小数,运算)
我正在 Hackerrank (Hackerrank Question) 的 Weather Observation Station 15 上工作
它问
Query the Western Longitude (LONG_W) for the largest Northern Latitude (LAT_N) in STATION that is less than 137.2345 . Round your answer to decimal places.
STATION Table 有 5 列:ID、CITY、STATE、LAT_N、LONG_W。
下面是我的查询,我想弄清楚为什么它不起作用。
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
当我尝试不同的查询时,这有效
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N = (SELECT MAX(LAT_N) FROM STATION WHERE LAT_N < '137.2345')
第一个查询有什么问题?谢谢。
这个查询:
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
将 return 所有 LAT_N
大于或等于 '137.2345'
的行,因为它缺少附加条件。
应该写成:
SELECT ROUND(LONG_W, 4) FROM STATION
WHERE LAT_N < '137.2345'
AND LAT_N >= ALL(SELECT LAT_N FROM STATION WHERE LAT_N < '137.2345')
此查询:
select round (long_w,4)
from station
where lat_n<137.2345
order by lat_n desc
limit 1;
首先,它选择所有 lat_n 小于 137.2345 的行。
其次,它按lat_n降序排列结果,所以第一个 行具有小于 137.2345 的最大 lat_n。
第三, 我设置了一个等于 1 的限制只得到第一行,然后我使用 round 函数得到 long_w 的回合。
语法
ROUND(数字,小数,运算)