SQL 查询查找专属客户

Posted

技术标签:

【中文标题】SQL 查询查找专属客户【英文标题】:SQL Query to find exclusive customer 【发布时间】:2016-02-08 18:11:50 【问题描述】:

我有一个包含 Cust 和 Category 两列的表,

**Cust   Category**

   1         X
   2         Y
   1         Y
   2         Z
   3         X
   4         D

客户 1 已从类别 X 和 Y 购买,但对于“类别 X”,3 是独家客户,因为客户 3 仅从 X 购买。我想要如下三列的结果(类别,购买的客户数量类别和独家客户):

**Category  NoOfCust  ExclusiveCust**

    X         2              3
    Y         2             NULL
    Z         1             NULL
    D         1              4 

如何查询表来得到这个结果?

【问题讨论】:

***,不是免费的编码服务 请展示您的尝试,以便我们为您提供帮助。 大家好....我尝试了下面的查询,但它抛出了一个错误.. select category,count(cust) as NoofCust,(select (cust) from sales group by cust have count( category)=1) 来自按类别的销售组 【参考方案1】:

使用临时表复制您的结构:

SELECT 
    Category, 
    COUNT(*) as NoOfCust, 
    CASE WHEN COUNT(*) = 1 THEN MAX(ID_W) ELSE NULL END as Exclusive
FROM #WORKER T
GROUP BY Category

【讨论】:

嗨..感谢您的建议,但没有得到正确的输出..当我执行上述查询时,得到如下输出.. 类别 NoOfCust Exclusive D 1 4 X 2 NULL Y 2 NULL Z 1 2

以上是关于SQL 查询查找专属客户的主要内容,如果未能解决你的问题,请参考以下文章

sql查询查找至少有2种帐户的用户

SQL的一些查询语句

Netezza SQL 查找客户端 IP

SQL查询以在一组语句中查找最大值[重复]

多行条件 SQL 查询

Mysql基础篇之一条Sql查询语句的前世今生---01