根據需求我需要查詢用戶第一次提現後每天做任務的情況,比如講連續一個月的數據按照行展示。
我首先將用戶的任務全都查出,然後根據邀請進行分組。但是並不是簡單的分組,我們需要給每個字段都加上Max()函數,這樣將會查詢出用戶某一天的最大值(其實用戶某一天的數據只有一個不爲0,其他都爲0)。
SELECT c.login_name, MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 0 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第一天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 1 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第二天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 2 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第三天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 3 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第四天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 4 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第五天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 5 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第六天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 6 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第七天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 7 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第八天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 8 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第九天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 9 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 10 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十一天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 11 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十二天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 12 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十三天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 13 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十四天,
MAX(CASE c.date
WHEN DATE_FORMAT( DATE_ADD(c.create_date, INTERVAL 14 day),'%Y%m%d') THEN
c.counts
ELSE
0
END) 第十五天
FROM
(SELECT b.id, b.login_name , a.date, COUNT(a.uid) as counts, b.create_date
FROM ctc_hq.log_task_statistics_hp as a
RIGHT JOIN (SELECT a.id, a.login_name, MIN(e.create_date) as create_date FROM
(SELECT id, login_name FROM uic.f_app_user WHERE login_name IN ('2065728',
'2070119',
'2069382',
'2077493',
'2029673',
'2061194'
)) as a
INNER JOIN moku.f_order as e
ON a.id = e.uid
GROUP BY a.id
) as b
ON b.id = a.uid
GROUP BY a.date, b.id) as c
GROUP BY c.login_name