我试图在同一个表中使用减号运算符,通过在第二个查询中使用不同的关键字来显示重复记录,但查询结果没有选择行。所以这是什么解释?
从my_table中选择column1 减去 从my_table中选择distinct(column1);
答案 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;