2012-06-23 2 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의 대답은 당신이 대신 날짜의 날짜에 의해 그룹화하는 권리이다 : 대신 하루 그룹에, 당신은 datetimedate에 캐스팅 할 수있다.

또한 테이블에서 가장 자주 발생하는 날짜를 찾으려고합니다. 이렇게하려면 다음을 시도해보십시오.

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

신속하고 정확한 답변에 대한 많은 감사 :) 최대한 빨리 그것을 표시합니다. – Erik

+3

사소한 세부 사항, 가장 큰 금액에 대한 선택에'count (*)'를 추가하십시오. – Andomar

+0

@Andomar : Thanks :) – Erik

1

datetime 열에서 그룹화하는 경우 일반적으로 모든 특정 시점에 대한 그룹을 갖게됩니다.

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