首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server:多列的唯一值之和

问Server:多列的唯一值之和
EN

Stack Overflow用户
提问于 2015-04-28 12:21:57
回答 2查看 3.5K关注 0票数 1

使用Server,我有一个表,如下面的示例表所示。我需要每个列"BookOrder、StationaryOrder和打印顺序“的所有唯一值之和。

样本表:

代码语言:javascript
复制
KeyIDCustomer   BooksOrder  StationaryOrder PrintingOrder
29945843         1070756    1891514            198876
29945843         1070756    1893827            198876
29945843         1070758    1891514            198876
29945843         1070758    1893827            198876

我正在使用下面的编码来实现这个目标。

代码语言:javascript
复制
Select DISTINCT KeyIDCustomerID,
Sum(Case when BooksOrder is not null then 1 else 0 End) TotalBookOrders,  
Sum(Case when StationaryOrder is not null then 1 else 0 End) TotalStationaryOrder,
Sum(Case when PrintingOrder is not null then 1 else 0 End)TotalPrintingOrder

在am中使用此代码将得到如下结果

代码语言:javascript
复制
  KeyIDCustomerID   TotalBookOrders TotalStationaryOrder    TotalPrintingOrder
   29945843                    4                       4                    4

我希望结果是这样的

代码语言:javascript
复制
  KeyIDCustomerID   TotalBookOrders TotalStationaryOrder    TotalPrintingOrder
   29945843                    2                       2                    1

有什么方法可以在SQL中实现这个目标吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-28 12:26:47

做一个group by,count(distinct column)来计数:

代码语言:javascript
复制
Select KeyIDCustomerID,
       COUNT(distinct BooksOrder) TotalBookOrders,  
       COUNT(distinct StationaryOrder) TotalStationaryOrder,
       COUNT(distinct PrintingOrder) TotalPrintingOrder
from tablename
group by KeyIDCustomerID
票数 4
EN

Stack Overflow用户

发布于 2015-04-28 12:26:59

我认为合适的术语是

每列的所有唯一值之和

是“唯一价值的计数”

COUNT (DISTINCT column_name)返回column_name中唯一的、非空值的数目。

代码语言:javascript
复制
Select 
KeyIDCustomerID,
COUNT(DISTINCT BooksOrder) as TotalBookOrders,  
COUNT(DISTINCT StationaryOrder) as TotalStationaryOrder,
COUNT(DISTINCT PrintingOrder) as TotalPrintingOrder
FROM SAMPLE_TABLE
GROUP BY KeyIDCustomerID
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29919385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档