2014-06-16 3 views
0

전자 메일이 내 앱을 통해 전송 될 때마다 레코드를 저장하는 테이블이 있습니다. 이제 하이 차트가있는 앱의 통계 페이지를 개발하려고합니다. 지난 5 일 동안 tbl_template_log 항목의 수를 계산하고이 값을 group_concat에 추가하여 그래프에 결과를 제공 할 수 있습니다.SQL count 5 일 동안의 행 수 및 count_concat에 추가

내 쿼리 : 내가 SQL 오류 얻을

SELECT group_concat(count(tbl_template_log.templog_id)) as 'stats_data' FROM tbl_template_log 
       WHERE DATE(tbl_template_log.send_date) < DATE(NOW()) 
       AND DATE(tbl_template_log.send_date) > DATE(NOW()) - INTERVAL 6 DAY 

:

1111 - Invalid use of group function 

나는이 GROUP_CONCAT (의 조합을 의미합니다 가정을)과() 계산이를 구성 할 수있는 방법이 쿼리는 하루에 행 수를 계산하고이 값을 group_concat .... 또는이 작업을 수행하는 다른 방법으로 추가합니다.

+0

다음 단지'제거 group_concat' 및 tbl_template_log.send_date'하여 '그룹을 추가 :

나는 당신이 필요가 있다고 생각합니다. 같은 그룹을 수행하는 동안 동일한 열을 선택하는 것이 좋습니다. –

답변

1

지난 5 일 동안 tbl_template_log의 항목 수를 계산하려고 시도하는 경우 group by을 사용하여 아래에서 사용하지 않는 이유는 무엇입니까? 당신이 날짜로 날짜 정보를 저장하면 다음 date(tbl_template_log.send_date) as send_date을 사용하고 마지막으로 group by send_date

SELECT 
tbl_template_log.send_date, 
count(tbl_template_log.templog_id) as `stats_data` 
FROM tbl_template_log 
WHERE 
DATE(tbl_template_log.send_date) < DATE(NOW()) 
AND 
DATE(tbl_template_log.send_date) > DATE(NOW()) - INTERVAL 6 DAY 
group by tbl_template_log.send_date 
+0

당신의 대답을 위해 안녕하세요 thx하지만이 쿼리의 결과는 각 행에 대해 단지 1입니다. 그래서 나는 매일 매일 1을 많이 얻었고이 모든 것을 하나의 숫자로 매일 더할 필요가 있습니다. – user3669523

+0

매일 하루에 1을 많이 보여서는 안되며 datetime으로 데이터를 저장하고 있기 때문에 comment에있는'date (tbl_template_log.send_date)'에 의해 그룹화를해야합니다. –

+0

다음은 http://sqlfiddle.com/#!2/8b350/2의 데모이며 날짜 열에 다른 별칭이 추가되었습니다 http://sqlfiddle.com/#!2/8b350/3 –

0

단지 시도! 데이터를 계산하는 경우

SELECT 
GROUP_CONCAT 
(tbl_template_log.templog_id) AS stats_data 
FROM 
(
SELECT COUNT(stats_data) 
FROM tbl_template_log 
WHERE DATE(tbl_template_log.send_date) < DATE(NOW()) 
AND DATE(tbl_template_log.send_date) > DATE(NOW()) - INTERVAL 6 DAY 
)test 
+0

pls , 내 솔루션이 작동하는지 아닌지 말해줘. .... – RGK