Oracle中查询存在字段值不一致的department_id
查询存在字段值不一致的department_id
要找出所有存在col1、col2、col3值不一致的department_id,可通过分组统计各部门下字段的不同值数量实现,具体SQL语句如下:
SELECT department_id FROM meta_test GROUP BY department_id HAVING COUNT(DISTINCT col1) > 1 OR COUNT(DISTINCT col2) > 1 OR COUNT(DISTINCT col3) > 1;
语句说明
GROUP BY department_id:按部门ID聚合同一部门的所有记录COUNT(DISTINCT col1) > 1:判断该部门下col1存在至少两种不同值- 同理,
COUNT(DISTINCT col2) > 1和COUNT(DISTINCT col3) > 1分别检查col2、col3的一致性 - 只要满足任一条件,即说明该部门存在字段值不一致的情况,会被筛选返回
针对示例数据,这条语句会返回490201——该部门的col3存在8000643和7000640两种不同值;而490202的所有字段值完全一致,不会被选中。
内容的提问来源于stack exchange,提问作者Pankaj Kothari
相关产品推荐
相关产品推荐

