문제
괜찮은, 이 하나 (3A; 제공된 답변이있는 샘플 문제) 머리를 긁어 냈습니다.
BBC (이름, 지역, 지역, 인구, GDP)
3A. 각 지역에서 가장 큰 국가를 찾으십시오.
SELECT region, name, population
FROM bbc x
WHERE population >= ALL
(SELECT population
FROM bbc y
WHERE y.region = x.region
AND population > 0)
나는 '의 개념을 이해한다'WHERE y.region = x.region
'테이블 항목을 통해 DB 엔진이 루핑하고 각 X.region과 현재 Y.REGRION (중첩 선택)과 일치하는 측면에서 생각할 때 ... 그러나 WTF는 WTF를 수행합니다.'AND population > 0
' 하다? 그것 없이는 정답은 아니지만 어떻게하지 않는지 모르겠습니다 ...
해결책
이 조항은 인구 열에 무효가있는 유럽 테이블 (바티칸의 경우)에 항목이 있기 때문에 있습니다. 다음 작품도 이해할 수 있다고 생각합니다.
SELECT region, name, population
FROM bbc x
WHERE population >= ALL
(SELECT population
FROM bbc y
WHERE y.region = x.region
AND population IS NOT NULL)
에서 모든 하위 쿼리에 대한 MySQL 문서, 유용한 의견이 있습니다 (강조) :
일반적으로 테이블이 포함되어 있습니다 없는 가치 그리고 빈 테이블 "가장자리 케이스"입니다. 하위 쿼리 코드를 작성할 때는 항상 두 가지 가능성을 고려했는지 여부를 고려하십시오.
다른 팁
나는 여기서 그것을 추측하고있다.
특정 지역의 모든 기록에 인구가 무효 인 경우 어떻게해야합니까?
편집 : 인구에서 -VE 값을 무시하는 것은 안전 네트로 간주 될 수 있습니다 (실제 시나리오가 아님).
제휴하지 않습니다 StackOverflow