【发布时间】:2015-02-08 12:11:43
【问题描述】:
我想找到每位客户最常购买的产品。我的数据集是这样的:
CustomerID ProdID FavouriteProduct
1 A ?
1 A ?
1 A ?
1 B ?
1 A ?
1 A ?
1 A ?
1 B ?
2 A ?
2 AN ?
2 G ?
2 C ?
2 C ?
2 F ?
2 D ?
2 C ?
产品太多了,我无法将它们放在数据透视表中。
答案如下所示:
CustomerID ProdID FavouriteProduct
1 A A
1 A A
1 A A
1 B A
1 A A
1 A A
1 A A
1 B A
2 A C
2 AN C
2 G C
2 C C
2 C C
2 F C
2 D C
2 C C
查询可能如下所示:
Update table
set FavouriteProduct = (Select
CustomerID, Product, Max(Count(Product))
From Table
group by CustomerID, Product) FP
【问题讨论】:
-
Pivot 与此无关。首先计算出返回每个客户最喜欢的产品的查询。您快到了。然后我们可以帮助更新。
-
@Nick.McDermaid -我知道,我只是说如果产品数量是三四个,我们可以通过数据透视表轻松找到最喜欢的产品。但是现在呢?
-
转到本页底部sql-server-performance.com/2006/find-frequent-values,看看您是否可以调整 SQL 以返回所有客户及其喜爱产品的列表。
-
谢谢你! @Nick.McDermaid
-
您的问题解决了吗?您需要进一步的帮助吗?
标签: sql sql-server sql-server-2012 pivot