我知道如何查询以根据一个或多个字段查找具有重复记录的记录,例如
Select Customer,Count(*) from Table1 group by Customer,Month having count(*)>1
这将为我提供在给定月份内多次订购的所有客户的列表。
然而,从那个选择我想:
优化组以仅显示产品不同的dupes。我知道如果我想做同样的事情我会在',Product'
之前添加到组中,但在我的情况下它是Product != Product
而我不确定如何在组中指出
而不是获取客户在给定月份内订购多个产品的列表,而不是所有这些订单的列表。换句话说,而不是该组中的这种类型的列表:
鲍勃,腊 玛丽,六月
我想回来:
Bob,Widget,December
Bob,Pipes,December
Mary,Books,June
Mary,Cars,June
答案 0 :(得分:1)
如果产品字段在同一个表中,那么您可以在产品字段中使用count with distinct来获取不同产品的数量:
Select Customer, Month, Count(distinct product)
from Table1
group by Customer, Month
having count(distinct product)>1
如果您想知道他们订购的内容,请将其作为子查询加入主表:
select distinct t1.customer, t1.month, t1.product from table1 t1
inner join
(Select Customer, Month, Count(distinct product)
from Table1
group by Customer, Month
having count(distinct product)>1
) t2 on t1.customer=t2.customer and t1.month=t2.month
外部选择中的独特性取决于您的确切需求。