如何使用SQL查询存在于多个县的PROPERTYID
筛选存在于多个县的PROPERTYID的SQL语句
要找出PROPERTIES表中对应多个不同COUNTYID的PROPERTYID,有两种实用的实现方式:
方法一:GROUP BY + HAVING(最简洁直接)
通过分组统计每个PROPERTYID关联的不同县数量,筛选出数量大于1的记录:
SELECT PROPERTYID FROM PROPERTIES GROUP BY PROPERTYID HAVING COUNT(DISTINCT COUNTYID) > 1;
- 如果你的表中
PROPERTYID和COUNTYID的组合是唯一的(不存在同一房产重复关联同一个县的冗余数据),可以省略DISTINCT,改用COUNT(COUNTYID) > 1,能小幅提升查询性能。
方法二:窗口函数(适合扩展场景)
如果后续需要同时查询该房产的其他关联字段,窗口函数的写法更灵活:
SELECT DISTINCT PROPERTYID FROM ( SELECT PROPERTYID, COUNT(DISTINCT COUNTYID) OVER (PARTITION BY PROPERTYID) AS county_count FROM PROPERTIES ) subquery WHERE county_count > 1;
示例验证
针对你提到的场景(仅PROPERTYID 12345对应COUNTYID 1111和1112),执行上述任意语句都会返回12345,完全匹配需求。
内容的提问来源于stack exchange,提问作者JCrichton
相关产品推荐
相关产品推荐

