Insurance
+-------------+-------+
| Column Name | Type |
+-------------+-------+
| pid | int |
| tiv_2015 | float |
| tiv_2016 | float |
| lat | float |
| lon | float |
+-------------+-------+
pid는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
이 테이블의 각 행에는 하나의 정책에 대한 정보가 포함됩니다.
pid는 보험 소유자의 정책 ID입니다.
tiv_2015는 2015년의 총 투자 가치이고 tiv_2016은 2016년의 총 투자 가치입니다.
lat은 보험 소유자의 도시가 위치한 위도입니다. lon은 정책 소유자 도시의 경도입니다. 경도 값이 NULL이 아닌 것이 보장됩니다.
모든 보험 계약자의 2016년 총 투자 가치의 합계를 보고하는 솔루션을 작성하시오:
하나 이상의 다른 보험 계약자와 동일한 tiv_2015 값을 가지며
다른 보험 계약자와 같은 도시에 위치하지 않습니다(즉, (lat, lon) 속성 쌍은 고유해야 함).
tiv_2016을 소수점 이하 두 자리로 반올림합니다.
-- 위도/경도 고유 값 with tmp_tb1 as ( select lat , lon from Insurance where 1=1 group by lat, lon having count(*) = 1 ), -- tiv_2015 값 중복 tmp_tb2 as ( select tiv_2015 from Insurance group by tiv_2015 having count(*) > 1 ) select round(sum(tiv_2016), 2) as tiv_2016 from Insurance where 1=1 and (lat, lon) in (select * from tmp_tb1) -- 위도/경도는 고유값만 and tiv_2015 in (select tiv_2015 from tmp_tb2) -- tiv_2015는 중복만 ;