在oracle中为同一个表减去运算符

时间:2017-03-15 05:48:55

标签: sql oracle

我试图在同一个表中使用减号运算符,通过在第二个查询中使用不同的关键字来显示重复记录,但查询结果没有选择行。所以这是什么解释?

从my_table中选择column1 减去 从my_table中选择distinct(column1);

1 个答案:

答案 0 :(得分:0)

  

"那么来自my_table的select column1的解释是什么?从my_table选择distinct(column1);"

MINUS运算符生成顶部子查询中不在下子查询中的所有值的结果集。它是一个SET,这意味着它只返回唯一值(因此不需要使用distinct)。显然,在您的查询中,下部子查询中的所有值都在上部子查询中,因此是空结果集。

要查找重复值,您需要使用聚合函数。此HAVING子句将仅返回column1的值,这些值不止一次出现。

select column1 , count(*)
from my_table 
group by column1 having count(*) > 1;