1

我想对数据库中的每个日期进行分组,并获得最高数量的数据以在网站上显示。我曾尝试使用此 SQL;SELECT COUNT(date_visited) FROM visitors GROUP BY date_visited但它只显示1

数据库如下所示:

CREATE TABLE IF NOT EXISTS `visitors` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `ipaddress` text NOT NULL,
  `page` text NOT NULL,
  `page_get` text NOT NULL,
  `date_visited` datetime NOT NULL,
  `date_lastactive` datetime NOT NULL,
  `date_revisited` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
)

我怎么解决这个问题?

提前致谢。

4

2 回答 2

3

Andomar 的回答是正确的,您是按日期时间分组,而不仅仅是按日期分组。

此外,您似乎正在尝试查找表中最常出现的日期。为此,您可以尝试以下操作:

SELECT DATE(date_visited)
FROM visitors
GROUP BY DATE(date_visited)
ORDER BY COUNT(*) DESC
LIMIT 1
于 2012-06-23T17:24:42.817 回答
1

如果您在datetime列上进行分组,您通常会为每个时间点获得一个组。要按天分组,您可以datetime转换为date

select  date(date_visited)
,       count(*) 
from    visitors 
group by
        date(date_visited)
order by
        count(*) desc
limit   1
于 2012-06-23T17:24:34.410 回答