需要计算顾客光顾店铺的次数

Posted

技术标签:

【中文标题】需要计算顾客光顾店铺的次数【英文标题】:Need to calculate No of time customer visit the shop 【发布时间】:2020-03-26 17:33:50 【问题描述】:

我需要计算客户光顾商店的次数。连同购买的物品。在这种情况下,客户访问商店 3 次并购买了 5 件商品。现在当我计算访问次数时,我的输出是 5。

下面是我尝试的查询:

select 
    Receipt_no,
    Customer,sales_item,
    Amount,
    sum(Amount) over (partition by customer) as total_sales,
    count(Receipt_No) over (partition by customer) as No_of_Visit 
from sales
left join customer where sales.Customer = customer.Customer

我的输出是

Receipt_No  Customer  sales_item  Amount  total_sales  No_of_Visit
5           C1        Item1       100     1200         5
5           C1        Item3       200     1200         5
5           C1        item4       200     1200         5
34          C1        item1       300     1200         5
35          C1        item2       400     1200         5

但我希望 No_of_Visit 为“3”

【问题讨论】:

为什么您需要离开加入 TO 客户?没有相关客户,销售怎么可能存在? 请阅读this,了解一些改进问题的技巧。 【参考方案1】:

我认为您需要明确的收据计数。那可能是:

count(distinct receipt_no) over (partition by customer) as No_of_Visit

但不幸的是,SQL Server 不支持窗口函数中的distinct。但是,您可以使用 dense_rank() 模拟它:

dense_rank() over (partition by customer order by receipt_no) 
    + dense_rank() over (partition by customer order by receipt_no desc) 
    - 1 as No_of_Visit

【讨论】:

欢迎@Angel。如果我的回答正确回答了您的问题,请点击检查符号accept it...谢谢!

以上是关于需要计算顾客光顾店铺的次数的主要内容,如果未能解决你的问题,请参考以下文章

咖蜜儿强力打造金牌披萨店留住顾客有法宝

我如何计算超过购买的客户?

成为独一无二的店铺,用不一样的照明系统让你的品牌脱颖而出!

成为独一无二的店铺,用不一样的照明系统让你的品牌脱颖而出!

四人小组:vip会员管理系统

微信小程序如何助攻餐饮业运营?如何快速为餐厅招揽新顾客?