力扣第585题
with t as (select *,
count(tiv_2015) over(partition by tiv_2015) cnt1 ,
count(*) over(partition by lat,lon) cnt2
from insurance)
select round(sum(tiv_2016),2) tiv_2016 from t where cnt1>1 and cnt2=1;
以上代码的思路:
①明确查询需求:需求是找出 2015 年有多个相同保险总额,并且地理位置唯一的保险单,然后计算这些保险单在 2016 年的保险总额总和。
②分析所需条件:
相同 2015 年保险总额的数量:需要统计每个 tiv_2015
值对应的记录数量,筛选出数量大于 1 的记录。
地理位置的唯一性:需要统计每个 lat
和 lon
组合对应的记录数量,筛选出数量等于 1 的记录。