SQL检查表中是否有不同的记录

SQL检查表中是否有不同的记录,sql,Sql,我想检查我的表中是否有任何不同的记录。我有一个销售表,在这个表中,我有两个相同产品的记录,所以实际上这个销售员不会销售多个产品。我需要一个select查询来检查销售超过1种(不同)产品的销售人员 表名SALES——列SALES\u id,SALES\u name,产品,名称,数量 只需显示销售人员姓名 您可以使用COUNT(DISTINCT)获取所需信息。(与sqlserver、MySQL和Oracle相同) 检查此查询: SELECT salesman_name ,COUNT(DI

我想检查我的表中是否有任何不同的记录。我有一个
销售
表,在这个表中,我有两个相同产品的记录,所以实际上这个销售员不会销售多个产品。我需要一个
select
查询来检查销售超过1种(不同)产品的销售人员

表名
SALES
——列
SALES\u id
SALES\u name
产品,名称
数量

只需显示销售人员姓名

您可以使用
COUNT(DISTINCT)
获取所需信息。(与
sqlserver
MySQL
Oracle
相同) 检查此查询:

SELECT salesman_name
      ,COUNT(DISTINCT product) ProductCount
FROM Sales
GROUP BY salesman_name
HAVING COUNT(DISTINCT product) >1
只需使用聚合:

select salesman_name
from sales
group by salesman_name
having min(product) <> max(product);

sales(sallers_name,product)
上有一个索引,这应该是获取原始行的最快方法。

Hi-Hikmet,您使用的是哪一个dbms?请显示一些示例数据和预期outputHi@zulqarnaninjalil,因为Hikmet只想看到不同的产品对每个销售人员都有多个。如果我不使用DISTINCT,查询也将计算相同的产品。
SELECT
    salesman_name,product,COUNT(*)
FROM
    SALES
GROUP BY
    salesman_name,product
HAVING 
    COUNT(*) > 1
select s.*
from sales s
where exists (select 1
              from sales s2
              where s2.salesman_name = s.salesman_name and
                    s2.product <> s.product
             );
SELECT
    salesman_name,product,COUNT(*)
FROM
    SALES
GROUP BY
    salesman_name,product
HAVING 
    COUNT(*) > 1