2012-06-23 32 views
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`) 
) 

我怎样才能解决这个问题?

在此先感谢。

+1

它看起来像这是MySQL。如果是这样,请添加该标签。 –

+0

我的错误:)我现在改变了。感谢:) – Erik

回答

3

Andomar的答案是正确的,你是日期时间,而不只是日期分组。

另外,您似乎在尝试查找表格中经常出现的日期。要做到这一点,你可以尝试以下操作:

SELECT DATE(date_visited) 
FROM visitors 
GROUP BY DATE(date_visited) 
ORDER BY COUNT(*) DESC 
LIMIT 1 
+0

非常感谢您的快速和正确的答案:)我会尽快标记它。 – Erik

+3

小细节,添加'count(*)'到最高金额的选择 – Andomar

+0

@Andomar:谢谢:) – Erik

1

如果您在datetime列中分组,则通常会为每个时间点获取一个组。由天而不是组,你可以投datetimedate

select date(date_visited) 
,  count(*) 
from visitors 
group by 
     date(date_visited) 
order by 
     count(*) desc 
limit 1