我在数据库中有一个表statistics
:
CREATE TABLE `statistics` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`address` TEXT NOT NULL,
`ip` TEXT DEFAULT NULL,
PRIMARY KEY (`id`)
)
为了获取每日网页访问量,我使用以下查询:
SELECT DATE_FORMAT(`timestamp`, "%Y-%m-%d"), COUNT(*)
FROM `statistics`
GROUP BY 1
ORDER BY 1 ASC
如何修改查询以获得IP唯一的每日访问量?
非常感谢!
最佳答案
将其更改为计算不同的 IP,如下所示
SELECT DATE_FORMAT(`timestamp`, "%Y-%m-%d"), COUNT(DISTINCT `ip`)
FROM `statistics`
GROUP BY 1
ORDER BY 1 ASC
如果您想将 null 视为单个 IP,我们必须进行稍微不同的查询
SELECT DATE_FORMAT(`timestamp`, "%Y-%m-%d"), COUNT(DISTINCT `ip`) + SUM(ISNULL(`ip`))
FROM `statistics`
GROUP BY 1
ORDER BY 1 ASC
关于mySQL,网站统计: unique daily visits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42976964/