记录一次产品需求中使用的一条 MySQL
记录一次产品需求中使用的一条 SQL
大致需求计算公司目前总沉睡用户并根据沉睡时间进行分组,不是沉睡用户的定义: 有购买消费行为、有注册行为 (在微信平台上关注了且通过手机号注册的)。
2 星期到 1 个月:14≤ R <30(从本日开始,假设上次行为时间到本日的时长是 R )
1 个月到 2 个月:30≤ R <60
2 个月到 3 个月:60≤ R <90
3 个月到 4 个月:90≤ R <120
4 个月到 5 个月:120≤ R <150
5 个月到 6 个月:150≤ R <180
6 个月以上:180≤ R
得益表定义的相对合理化,就用了一条 SQL 快速解决了问题。
SELECT
CASE
WHEN user_sleep_time <= 1536595176
AND user_sleep_time > 1535212776 THEN
'twoWeekdsAgo'
WHEN user_sleep_time <= 1535212776
AND user_sleep_time > 1532620776 THEN
'thirtyDaysAgo'
WHEN user_sleep_time <= 1532620776
AND user_sleep_time > 1530028776 THEN
'sixtyDaysAgo'
WHEN user_sleep_time <= 1530028776
AND user_sleep_time > 1527436776 THEN
'ninetyDaysAgo'
WHEN user_sleep_time <= 1527436776
AND user_sleep_time > 1524844776 THEN
'oneHundredAndTwentyDaysAgo'
WHEN user_sleep_time <= 1524844776
AND user_sleep_time > 1522252776 THEN
'oneHundredAndFiftyDaysAgo'
WHEN user_sleep_time <= 1522252776 THEN
'oneHundredAndEightyDaysAgo'
ELSE 0
END sleep, COUNT(*) AS userCount
FROM `user_sleep_relation`
WHERE `user_recall_time` < 1536595176
GROUP BY `sleep`
主要记录下 SQL 中 case when
的用法。
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 5年前 自动加精
推荐文章: