客户一个月内的交易次数

时间:2020-07-18 06:18:51

标签: mysql sql

给出以下表格

用户信息:

  • user_id
  • 日期

User_trascations:

计算2020年1月1日的30天活动支出,计数(客户 在最近30天(即2020-01-01至2020-01-31)进行了至少一笔交易。

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

如何获取最后一行的总数?在SQL中也是如此?

我已经尝试过了:

function fun<T>(a: T): {
  touched: {
    [key in keyof T]?: boolean;
  }
  values: T,
  errors: any[],
  updateField: () => void
} {
  ... // Do stuff with the inputs
}

1 个答案:

答案 0 :(得分: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)

Coalcece函数就像一个if / else。如果value为null(A.Date值),则它将返回传递的字符串('Total')。这就是您在结果末尾看到的文本(摘要)。

汇总功能与分组依据一起使用以定义结果组并在最后一行获取简历。