0

我是 SQL 新手,我想编写一个查询来查找任何特定商店的唯一客户。例如: SH1 店有 10 位顾客注册,其中 10 - 3 位顾客也注册到其他一些商店。我想要一个查询,它将返回唯一的 7 个客户到 SH1 商店。

ShopId和都CustomerId存储在同一个表中,所以我想需要一个子查询。

谢谢,马尤尔

样本数据:

ShopId CustomerId

  • Shop1 Cust001
  • Shop1 Cust002
  • Shop1 客户003
  • Shop2 Cust002
  • Shop3 Cust004
  • Shop4 Cust002

在上面的示例中,如果我对商店 ID Shop1 运行查询,我应该得到 Cust001、Cust003 作为回报,它们是 Shop1 独有的,而不是 Cust002,因为它与其他商店 ID 相关联。

4

3 回答 3

1

我想你可以这样做

select distinct customerId from tablename where shopId = 'SH1' and customerId not in (select customerId from tablename where shopId<>'SH1');
于 2013-03-13T08:59:55.980 回答
1

如果您也想知道他们注册的商店

SELECT CustomerID, 
    ShopID
    FROM shop
    WHERE CustomerID IN (
        SELECT CustomerID
            FROM shop 
            GROUP BY CustomerID 
            HAVING COUNT(ShopID) = 1)
于 2013-03-13T09:12:26.777 回答
0

您需要独特的客户

SELECT CUSTID FROM SHOP GROUP BY CUSTID HAVING( COUNT(SHOPID) = 1)
于 2013-03-13T09:06:59.767 回答