MySQL-统计不同月份记录的发生次数
我有一个表格,其中包含我需要的所有信息,但格式不同。我想连接字段名称和活动以使其唯一,并按月份和年份对日期进行分组。此查询将始终在两个日期之间进行比较,当我指定MONTH1时,请执行下面的操作,实际上是指分析的第一个月和MONTH2,分析的第二个月。我还需要知道它们之间的差异百分比MySQL-统计不同月份记录的发生次数,mysql,count,Mysql,Count,我有一个表格,其中包含我需要的所有信息,但格式不同。我想连接字段名称和活动以使其唯一,并按月份和年份对日期进行分组。此查询将始终在两个日期之间进行比较,当我指定MONTH1时,请执行下面的操作,实际上是指分析的第一个月和MONTH2,分析的第二个月。我还需要知道它们之间的差异百分比 Example of Raw table: ====================== Name Activity Date ++++++++++++++++++++++++++++++++ Pau
Example of Raw table:
======================
Name Activity Date
++++++++++++++++++++++++++++++++
Paul VideoGame 2015-02-01
John Play Guitar 2015-03-05
Paul Play Guitar 2015-02-01
Paul Play Guitar 2015-02-15
Paul VideoGame 2015-03-04
John Play Guitar 2015-03-06
Output wanted:
==================
Name+Activity Month1 Month2 Percentage
+++++++++++++++++++++++++++++++++++++++++++++++++++
John+Play Guitar 0 2 +200%
Paul+VideoGame 1 1 0%
Paul+Play Guitar 2 0 -200%
如果您知道月份,那么您可以使用条件聚合来实现这一点。我会把
名称
和活动
放在单独的列中。而且,我不太确定百分比列是如何计算的:
select name, activity,
sum(month(date) = 2) as month1,
sum(month(date) = 3) as month2,
sum(month(date) = 3) - sum(month(date) = 2)) as diff
from rawtable
group by name, activity;
如果确实需要,可以将name
和activity
连接为concat_ws(+',name,activity)。通过乘以100,可以将
diff`转换为所需的格式