Oracle中如何忽略特定列中出现次数大于1的值?
Oracle查询:排除特定列重复次数超过1的记录
要实现排除Column1中出现次数大于1的所有值,有两种常用方法:
方法1:子查询关联统计
先通过分组统计Column1的出现次数,再关联原表筛选出次数为1的记录:
SELECT t.Column1 AS "Row 1", t.Column2 AS "Row 2" FROM your_table t INNER JOIN ( SELECT Column1 FROM your_table GROUP BY Column1 HAVING COUNT(*) = 1 ) cnt ON t.Column1 = cnt.Column1;
方法2:窗口函数(更简洁)
利用COUNT() OVER()窗口函数直接计算每个Column1分组的记录数,外层过滤计数为1的行:
SELECT Column1 AS "Row 1", Column2 AS "Row 2" FROM ( SELECT Column1, Column2, COUNT(*) OVER (PARTITION BY Column1) AS col_count FROM your_table ) sub WHERE col_count = 1;
注意:将上述代码中的your_table替换为你实际使用的表名。
内容的提问来源于stack exchange,提问作者Dinakar Sadineni
相关产品推荐
相关产品推荐

