with sub_calc as (
select lat
,lon
from (
select lat
, lon
, count(*) as cnt
from Insurance
group by 1,2
) as t
where cnt = 1
)
, sub_2015 as (
select tiv_2015
, count(*) as tot
from Insurance
group by 1
having tot >= 2
)
select round(sum(tiv_2016) , 2) as tiv_2016
from Insurance i join sub_calc s on i.lat = s.lat and i.lon = s.lon
where tiv_2015 in (select tiv_2015 from sub_2015)
조건 1 ) 하나 이상의 다른 보험 계약자와 동일한 tiv_2015 값
조건 2) 다른 보험 계약자와 동일한 도시에 위치하지 않음, lat&lon -> 고유해야 한다.
이렇게 서브 테이블 두개를 만들어 원본 테이블에 조건을 추가하여 원하는 데이터를 추출하면 끝!
'coding > sql 코딩테스트' 카테고리의 다른 글
[리트코드] 620. Not Boring Movies (0) | 2025.02.15 |
---|---|
[리트코드] 619. Biggest Single Number (0) | 2025.02.15 |
[리트코드] 184. Department Highest Salary (0) | 2025.02.07 |
[solvesql] 유량(Flow)와 저량(Stock) (0) | 2025.01.31 |
[solvesql] 친구 수 집계하기 (0) | 2025.01.30 |