数据表中字段:user_id用户id,sign_time签到时间,reward_code奖励编码,reward_value奖励金额。对用户进行分组,每个群组有若干reward_code奖励编码可以随即领取,每个群组里的用户每天只能领取一个奖励编码的奖励。
求各群组每天领取成功奖励的用户数,按时间升序排列。
SELECT a.st AS `日期`, COUNT(DISTINCT a.user_id) AS `总签到人数`, COUNT(DISTINCT CASE
WHEN reward_code IN ('1001', '1002', '1003', '1004', '1005') THEN a.user_id
ELSE NULL
END) AS `任意组领取`
, COUNT(DISTINCT CASE
WHEN reward_code IN ('1006', '1007', '1008', '1009', '1010') THEN a.user_id
ELSE NULL
END) AS `首签领取`, COUNT(DISTINCT CASE
WHEN reward_code IN ('1011', '1012', '1013', '1014', '1015') THEN a.user_id
ELSE NULL
END) AS `群组一领取`
, COUNT(DISTINCT CASE
WHEN reward_code IN ('1016', '1017', '1018', '1019