SQL:寻找商店的独特客户的问题

时间:2013-03-13 08:50:26

标签: mysql sql group-by subquery having-clause

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

ShopIdCustomerId都存储在同一个表中,因此我猜需要一个子查询。

谢谢, MAYUR

示例数据:

ShopId CustomerId

  • Shop1 Cust001
  • Shop1 Cust002
  • Shop1 Cust003
  • Shop2 Cust002
  • Shop3 Cust004
  • Shop4 Cust002

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

3 个答案:

答案 0 :(得分:1)

我想你可以做到这一点

select distinct customerId from tablename where shopId = 'SH1' and customerId not in (select customerId from tablename where shopId<>'SH1');

答案 1 :(得分:1)

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

SELECT CustomerID, 
    ShopID
    FROM shop
    WHERE CustomerID IN (
        SELECT CustomerID
            FROM shop 
            GROUP BY CustomerID 
            HAVING COUNT(ShopID) = 1)

答案 2 :(得分:0)

您需要独特的客户

SELECT CUSTID FROM SHOP GROUP BY CUSTID HAVING( COUNT(SHOPID) = 1)