SQL中用户id的累计加减次数

问题描述 投票:0回答:0

随着时间的推移,我正在获取企业/平台可以拥有的持卡人数量。用户可以创建和阻止卡以及卡可以过期。

我们有一个日志表,显示卡片何时创建、阻止或过期。

平台ID 用户ID Card_ID Card_Created_At Type_of_Card Card_Action
111111 123 AA1PHY '2021-01-02' 身体 已创建
111111 123 AA2DIG '2021-03-12' 数字 已创建
111111 123 AA1PHY '2021-07-27' 身体 封锁
111111 321 AB1PHY '2021-02-16' 身体 已创建
111111 123 AA2DIG '2022-01-02' 数字 已过期

我们想统计商家或平台在购买时拥有的持卡人数量。

平台ID ID_Transaction Trasancted_At 持卡人
111111 A222333 '2021-02-20' 2
111111 A222334 '2021-03-15' 2
111111 A222335 '2021-08-01' 2
111111 A222336 '2022-02-20' 1

让我们跟踪该业务/平台当时每笔交易的持卡人数量。

  1. 对于交易 ID A222333。当时,业务/平台有两个持卡人(用户123和321。都是实体卡)。
  2. 对于交易ID A222334,企业/平台也有两个持卡人(用户123和321。用户123拥有数字卡和实体卡,但只有一个持卡人)
  3. 对于交易 ID A222336,由于用户 123 的卡已被冻结且过期,因此企业/平台只有 1 个持卡人。

我怎么能在 SQL 中做到这一点?事务和卡表之间的左连接?我怎样才能减去卡被阻止或过期的用户数量?

我为卡片创建事件创建了日志表。我坚持加入并计算每个企业/平台在每笔交易当天拥有的持卡人数量。

mysql performance count left-join
© www.soinside.com 2019 - 2024. All rights reserved.