我需要在单个 SQL 请求中获取按年份和用户类型分组的用户流失率值。
流失率 = 今年流失的用户数(存档)/(今年年初的用户数 + 今年注册的用户数)
今年丢失的用户 - 在特定年份内拥有“archive_date”(DATETIME)字段的用户。
用户计数- 可以通过“注册”(DATETIME)字段计算。
我需要按数据库中存在的所有年份(用于用户注册日期)对这些数据进行分组,并按用户类型进行分组。
预期结果(只是一个样本):
year | user_type | churn_rate
2019 | A | 32
2019 | B | 20
2019 | C | 15
2020 | A | 52
2020 | B | 45
... etc years and user types
示例数据数据库小提琴: https ://dbfiddle.uk/?rdbms=mysql_5.7&fiddle=0f79c8fb40b6c1185908f91ce39d6251
例如对于这个示例小提琴在 2020 年注册了 1 个新用户,我们在 2020 年初有 2 个用户(他们在 2019 年注册),我们有 1 个用户在 2020 年存档,所以(如果我们不按用户类型分组) 2020 年的总体流失率将是:
流失率 = 1 / (2 + 1) = 0.33(33% 流失率)
代码应该适用于 MySQL 5.7。