2011-12-20 2 views
2

당 선택 나는 5 행 MySQL의 테이블이 있습니다MySQL은 단 1 경기

email 
message_id 
date 
time 

을 그리고 나는 일 당이 이메일의 수를 계산하고 싶습니다.

지금까지 나는이

SELECT Date,COUNT(*) AS Num FROM mail2_mailing_log WHERE [email protected] GROUP BY Date ORDER BY Date DESC 

해야하지만 우리는이 스크립트에 문제가 있었고 많은 데이터 (이후 수정 된 어떤)을 곱한 찾았 어,하지만 난 사용할 수 있도록하고 싶습니다 내가 가지고있는 데이터.

기본적으로 전자 메일, 날짜 및 시간마다 일치하는 모든 행을 "병합"한 다음 날짜별로 그룹화하고 항목 수를 계산하려고합니다. 날짜 열이 너무 시간을 포함

SELECT DISTINCT Date,COUNT(*) AS Num FROM mail2_mailing_log WHERE [email protected] GROUP BY Date ORDER BY Date DESC 

답변

2
SELECT q.date, COUNT(*) 
    FROM (SELECT DISTINCT email, date, time 
       FROM mail2_mailing_log 
       WHERE Id_Message = @Id) q 
    GROUP BY q.date 
    ORDER BY q.date DESC 
2

은 별개의 키워드를 사용합니다.

SELECT DATE_FORMAT(Date, '%W %M %Y'),COUNT(*) AS Num FROM mail2_mailing_log 
WHERE [email protected] GROUP BY DATE_FORMAT(Date, '%W %M %Y') 
ORDER BY DATE_FORMAT(Date, '%W %M %Y') DESC 
+0

그것은 아무것도 변경하지 않았다. – Manhim

1

경우에, 당신은 DATE_FORMAT() 기능을 사용하여 날짜 열을 포맷해야합니다

+0

그냥 GROUP BY에 대해 깨닫고 업데이트되었습니다. 별개의 것도 삭제했습니다. –