蚂蚁森林低碳用户排名分析问题 查询 user low carbon 表中每日流水记录条件为用户在 2017 年连续三天 或以上 的天数里每天减少碳排放 low_carbon 都超过 100g 的用户低碳流水。需要查询返回满足以上条件的 user low carbon 表中的记录流水
你可以使用以下 SQL 查询语句来获取满足条件的用户低碳流水记录:
SELECT *
FROM user_low_carbon
WHERE DATE_FORMAT(date, '%Y') = '2017'
AND user_id IN (
SELECT user_id
FROM (
SELECT user_id, date, low_carbon,
@rn := IF(@prev_user = user_id, @rn + 1, 1) AS rn,
@prev_user := user_id
FROM user_low_carbon, (SELECT @prev_user := NULL, @rn := 0) AS vars
WHERE DATE_FORMAT(date, '%Y') = '2017'
ORDER BY user_id, date
) AS t
WHERE rn >= 3 AND low_carbon <= -100
);
这个查询语句中,首先使用子查询获取在 2017 年内连续三天 (或以上) 每天减少碳排放超过 100g 的用户。然后将这些用户的记录与原始的用户低碳流水表进行关联,从而得到满足条件的用户低碳流水记录
原文地址: https://www.cveoy.top/t/topic/iHwO 著作权归作者所有。请勿转载和采集!