SQL 50 › 索引 › A6 Subqueries 子查询
LC 5852016年的投资Investments in 2016 中等
Insurance 表记录保单的 tiv_2015、tiv_2016 与经纬度;对 tiv_2015 与其他保单相同、且位置坐标唯一的保单,求 tiv_2016 总和,保留 2 位小数。
思路 两个子查询:GROUP BY + HAVING 计数筛选,(lat,lon) 行元组 IN。
SELECT ROUND(SUM(tiv_2016), 2) AS tiv_2016 FROM Insurance WHERE tiv_2015 IN ( SELECT tiv_2015 FROM Insurance GROUP BY tiv_2015 HAVING COUNT(*) > 1 ) AND (lat, lon) IN ( SELECT lat, lon FROM Insurance GROUP BY lat, lon HAVING COUNT(*) = 1 );