HOST_ID 별로 COUNT가 1개보다 많은 경우 SELECT 후 결과 먼저 보고
SELECT
HOST_ID,
COUNT(*) AS COUNT
FROM
PLACES
GROUP BY
HOST_ID
HAVING
COUNT(*)>1
답
SELECT
ID,
NAME,
HOST_ID
FROM
PLACES
WHERE
HOST_ID IN
(SELECT HOST_ID FROM PLACES
GROUP BY HOST_ID HAVING COUNT(*)>1)
ORDER BY ID
느낀점
답
SELECT
OUTS.ANIMAL_ID,
OUTS.NAME
FROM
ANIMAL_OUTS OUTS
LEFT OUTER JOIN
ANIMAL_INS INS
ON
OUTS.ANIMAL_ID = INS.ANIMAL_ID
WHERE
INS.ANIMAL_ID IS NULL
ORDER BY
OUTS.ANIMAL_ID
느낀점
cf ) 별다른 명시 없이 join만 쓰면 inner join이 default
left/right를 명시하는 경우에는 무조건 outer join임
예 ) left join = left outer join 임
right join = right outer join 임
SELECT
NAME,
COUNT(NAME) AS COUNT
FROM
ANIMAL_INS
WHERE
NAME IS NOT NULL
GROUP BY
NAME
HAVING
COUNT(NAME)>1
ORDER BY
NAME
느낀점
예시 )
SELECT
GROUP BY 절에 지정한 컬럼,
위 컬럼별로 집계할 컬럼 또는 값
FROM
TABLE명
WHERE
조건
GROUP BY
그룹으로 묶을 컬럼 값
HAVING
조건
위에서 WHERE과 HAVING은 조건이 따로 없으면 생략 가능
GROUP BY 뒤에 오는 조건절은 WHERE이 아닌 HAVING임!