客户一个月内的交易数

  • 本文关键字:交易 一个 客户 mysql sql
  • 更新时间 :
  • 英文 :


给定以下表格

用户信息:

  • user_id
  • 日期

用户浏览:

  • user_id
  • 事务处理日期
  • 采购_装载http://sqlfiddle.com/#!9/0b73b4

计算2020-01-01年1月的30天活跃消费者,计数(客户谁在过去30天内(即2020-01-01至2020-01-31(进行了至少一次交易。

The result table should be as follows:
-------------------------------------------------------------
Date      |   Total_customers |   Customers_who_made_purchase
-------------------------------------------------------------
01-01-2020     100               20
02-01-2020     200               60
Total          300               80

如何获得最后一行的总数?SQL中也是这样?

我试过这个:

select
date(User_info.date) as date 
, count(distinct User_trascations.user_id), 
count(distinct User_info.user_id) as conversion
from User_info join User_trascations
on User_info.user_id = User_trascations.user_id
group by 1

正如我在评论中所说,这是一个示例,可以让您了解如何获得所需结果。

SELECT
COALESCE(A.Date, 'Total') AS User_Date,
COUNT(DISTINCT(B.User_Id)) AS Total_Customers,
COUNT(DISTINCT(A.User_Id)) AS Customer_Purchases
FROM
USER_INFO A JOIN USER_TRASCATIONS B ON
A.User_Id = B.User_Id
GROUP BY
ROLLUP(A.Date)

Coalesce函数类似于if/else。当值为null(A.Date值(时,它将返回传递的字符串("总计"(。这将是您在结果(摘要(末尾看到的文本。

Rollup函数与Group By一起定义结果组,并在最后一行获取简历。

相关内容

最新更新