我有一个referrers
包含三列的简单表:
Referrer //string name of partner
TimeOfVisit //timestamp
SessionID //(unique id only used when joining with sales data for conversion)
我想检索数据进行分析,并呈现一个堆积柱形图,其中每天有一列显示访问者的引荐来源。
这是我设法放在一起的查询:
SELECT
DATE(TimeOfVisit) AS Date,
Referrer,
COUNT(Referrer) AS VisitorCount
FROM referrers
GROUP BY CONCAT(DATE(time_of_visit), referrer)
它确实给了我正在寻找的数据:
Array
(
[0] => Array
(
[Date] => 2012-04-01
[Referrer] => adwords
[VisitorCount] => 3
)
[1] => Array
(
[Date] => 2012-04-01
[Referrer] => facebook
[VisitorCount] => 5
)
[2] => Array
(
[Date] => 2012-04-02
[Referrer] => adwords
[VisitorCount] => 6
)
...
我有两个问题:
- 即使我能感觉到,通过连接字符串进行分组是可怕的,它只是感觉不对。
- 解析结果的 php 脚本总是需要知道当前引用者的完整列表,因此它可以分配 0 值,以防在给定日期没有来自引用者的点击。至少可以说不是很优雅。
解决这个问题最有效的方法是什么?它实际上只能在 MySQL 中解决吗?