SELECT
name, bonus
FROM Employee a
LEFT JOIN Bonus b
ON a.empId = b.empId
WHERE bonus < 1000
OR bonus IS NULL
SELECT
name
FROM Customer
WHERE referee_id != 2
OR referee_id IS NULL
WITH a AS (
SELECT
*
, COUNT(tiv_2015) OVER (PARTITION BY tiv_2015) cnt_15
, CONCAT(lat,lon) xy
FROM Insurance
), b AS (
SELECT
*
, COUNT(xy) OVER (PARTITION BY xy) cnt_xy
FROM a
)
SELECT
ROUND(SUM(tiv_2016),2) tiv_2016
FROM b
WHERE cnt_15 > 1
AND cnt_xy = 1

비고 : 나름 코드가 길어서 쿼리 처리 속도가 느릴 줄 알았는데 빨라서 기분이 좋았다.
처음엔 좌표를 각각 중복을 체크했다. 그러면 오류가 있더라. 그래서 좌표를 합쳤다. 데이터 예시만 보고 좌표가 소수점이 아닌 점을 바탕으로 CONCAT()을 하고 위에 CAST(00 AS DECIMAL)을 했는데 소수점이 있다는 것을 파악하고 CAST는 사용하지 않았다.