문제
Find the difference between the total number of CITY entries in the table and the number of distinct CITY entries in the table. The STATION table is described as follows:
where LAT_N is the northern latitude and LONG_W is the western longitude.
정답
SELECT (SELECT COUNT(*)
FROM (SELECT ALL CITY
FROM STATION) A
) - (SELECT COUNT(*)
FROM (SELECT DISTINCT CITY
FROM STATION) B
);
SQL
복사
풀이
•
우선 CITY의 총 개수를 구하기 위해서는 서브 쿼리로 CITY 컬럼만 빼오고 COUNT(*)를 사용해주면 된다.
SELECT COUNT(*)
FROM (SELECT ALL CITY
FROM STATION) A
SQL
복사
•
UNIQUE한 CITY의 개수는 동일한 방법으로 하되, 서브 쿼리에서 DISTINCT를 붙여주면 된다.
SELECT COUNT(*)
FROM (SELECT DISTINCT CITY
FROM STATION) B
SQL
복사
•
마지막으로 COUNT된 것들을 소괄호로 묶고 SELECT (전체) - (Unique) 형태로 구해주면 된다.
SELECT (SELECT COUNT(*)
FROM (SELECT ALL CITY
FROM STATION) A
) - (SELECT COUNT(*)
FROM (SELECT DISTINCT CITY
FROM STATION) B
);
SQL
복사