什么即时试图实现的是获得当前计数和上个月计数,所以我可以做一个公式得到的百分比增长MySQL查询获得当月和上月的数量来获得增长的百分比
(CountCurrent - CountLastMonth)/CountLastMonth
我的表有以下字段
activity, upload_date
这是查询即时现在尝试。
SELECT
Y.CurrentMonth, Y.CountCurrent,
Z.LastMonth, Z.CountLastMonth
FROM
(SELECT
upload_date,
activity,
DATE_FORMAT(upload_date,'%M %Y') AS CurrentMonth,
COUNT(activity) AS CountCurrent
FROM appmaster
WHERE activity = 'com.google.test'
GROUP BY DATE_FORMAT(upload_date,'%m%y'))
Y INNER JOIN
(SELECT
activity,
DATE_FORMAT(upload_date,'%M %Y') AS CurrentMonth2,
DATE_FORMAT(upload_date - INTERVAL 1 MONTH,'%M %Y') AS LastMonth,
COUNT(activity) AS CountLastMonth
FROM appmaster
WHERE activity = 'com.google.test'
GROUP BY DATE_FORMAT(upload_date - INTERVAL 1 MONTH,'%m%y'))
Z ON Z.CurrentMonth2 = Y.CurrentMonth
GROUP BY DATE_FORMAT(upload_date,'%Y%m')
ORDER BY DATE_FORMAT(upload_date,'%Y%m')
我的CurrentMonth,CountCurrent和LastMonth正常工作。但CountLastMonth与CountCurrent相同。
我之前想这和它会给我的一切,但CountLastMonth
SELECT b.CurrentMonth, sum(b.CountCurrent), b.LastMonth
FROM (SELECT DATE(a.upload_date - INTERVAL 1 MONTH) AS LastMonth, DATE(a.upload_date) AS CurrentMonth, COUNT(a.activity) AS CountCurrent
FROM appmaster a WHERE a.activity = 'com.google.android.googlequicksearchbox'
group BY MONTH(a.upload_date)) AS b
group BY MONTH(b.CurrentMonth)
很好的解释,但对方的回答似乎只是要好得多。 – Bignadad 2014-09-22 22:29:40
@Badadad :)确实......但是,对于更复杂的任务,临时表是一种有用的资源(一种方便的“分而治之”的工具,可以在未来帮助你) – Barranka 2014-09-22 23:12:06