蚂蚁森林低碳用户排名分析:如何查询连续三天低碳排放超过100g的用户?
蚂蚁森林低碳用户排名分析:如何查询连续三天低碳排放超过 100g 的用户?
查询 'user_low_carbon' 表中每日流水记录,条件为:用户在 2017 年,连续三天 (或以上) 的天数里每天减少碳排放 (low_carbon) 都超过 100g 的用户低碳流水。
您可以使用以下 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/qnZN 著作权归作者所有。请勿转载和采集!