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