题目
Insurance
表:
请你编写一个 SQL 查询,报告 2016 年 (tiv_2016) 所有满足下述条件的投保人的投保金额之和:
- 他在 2015 年的投保额 (tiv_2015) 至少跟一个其他投保人在 2015 年的投保额相同。
- 他所在的城市必须与其他投保人都不同(也就是说 (lat, lon) 不能跟其他任何一个投保人完全相同)。
tiv_2016 四舍五入的 两位小数 。
查询结果格式如下例所示。
示例:
解题思路
代码实现
select round(sum(tiv_2016),2)as tiv_2016
from Insurance e
Where e.tiv_2015 in (select e1.tiv_2015 from Insurance e1 group by tiv_2015 having count(1) > 1)
and (e.lat,e.lon) in(select e1.lat,e1.lon from Insurance e1 group by e1.lat,e1.lon having count(1)=1)
测试结果