我想对数据库中的每个日期进行分组,并获得最高金额以在网站上显示。我试过用这个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`)
)
我该如何解决这个问题?
提前致谢。
答案 0 :(得分:3)
Andomar的答案是正确的,你是按日期时间而不是日期分组。
此外,您似乎正在尝试查找表格中最常出现的日期。为此,您可以尝试以下方法:
SELECT DATE(date_visited)
FROM visitors
GROUP BY DATE(date_visited)
ORDER BY COUNT(*) DESC
LIMIT 1
答案 1 :(得分:1)
如果您要对datetime
列进行分组,则通常会为每个时间点分组。要按日分组,您可以将datetime
投射到date
:
select date(date_visited)
, count(*)
from visitors
group by
date(date_visited)
order by
count(*) desc
limit 1