我正在使用mysql,我无法考虑查询来计算特定日期范围内的用户/访问者数量。我目前正在使用的方式是使用php,我选择日期范围并在for循环中处理数据然后只计算它们。它实际上非常简单,但问题是这种方法不适用于几百万行的大数据。另一种方法是仅使用mysql计算不同的值,只使用timestamp列上的索引返回计数而不是实际数据。此外,将列转换为日期时间不是一种选择。我有什么想法可以实现这个目标吗?
以下是我需要的示例结果集:
date | count
5-01-13 14
5-02-13 44
5-03-13 23
5-04-13 13
我的问题是我不知道如何按日对时间戳列进行分组。
答案 0 :(得分:5)
应该这样做:
SELECT DATE('datetimecolumn'), COUNT(*)
FROM Table
GROUP BY DATE('datetimecolumn')
答案 1 :(得分:0)
您只需要这样做,而是添加group by子句:
SELECT myDate, count(distinct myField) as cnt
FROM myTable
WHERE myDate BETWEEN ? and ?
GROUP by myDate;
哪里有“?”是您在原始查询中使用的日期。