문제

괜찮은, 이 하나 (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 값을 무시하는 것은 안전 네트로 간주 될 수 있습니다 (실제 시나리오가 아님).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top