我尝试为我的WordPress安装提供一个随机横幅插件,我也想从我的横幅中提取一些统计信息。
要执行该任务,我创建了一个具有以下签名的表:
CREATE TABLE `bb_banner_statistics` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`post_id` bigint(20) DEFAULT NULL,
`event` varchar(15) DEFAULT NULL,
`value` tinyint(4) DEFAULT NULL,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1
其中post_id
是横幅ID,event
是我想跟踪的事件(即查看,悬停,点击等),value
只需取值#34 1" (我这样做是为了便于对特定事件类型进行总结),以及created
这是事件的日期时间。
因此,在示例中,表格可以包含以下值:
|---------------------------------------------------|
| ID | POST_ID | EVENT | VALUE | CREATED |
|---------------------------------------------------|
| 1 | 62 | view | 1 | 2014-4-12 11:45:12 |
| 2 | 63 | view | 1 | 2014-4-12 11:45:12 |
| 3 | 64 | view | 1 | 2014-4-12 11:45:12 |
| 4 | 62 | hover | 1 | 2014-4-12 11:46:18 |
| 5 | 63 | hover | 1 | 2014-4-12 11:46:22 |
| 6 | 63 | click | 1 | 2014-4-12 11:46:23 |
| 7 | 62 | hover | 1 | 2014-4-12 11:46:23 |
| 8 | 62 | view | 1 | 2014-4-13 09:20:17 |
|---------------------------------------------------|
所以问题是,我如何对数据进行分组,以便获得每天每个横幅的总观看次数,总点击次数和总悬停事件?
答案 0 :(得分:2)
我认为你想要条件聚合:
select date(created) as thedate, post_id,
sum(event = 'click') as numclicks,
sum(event = 'view') as numviews,
sum(event = 'hover') as numhovers
from bb_banner_statistics
group by date(created), post_id;