2011-11-30 5 views
6

데이터베이스에서 데이터를 가져 오기 위해 쿼리를 작성하려고하는데이를 완료 할 수 없습니다.어려운 mySQL 쿼리를 설정하는 데 어려움이 있습니다.

나는 더미 데이터와 다음 표이 있습니다

id | date 

0 | 2011-11-25 20:12:32 
1 | 2011-11-15 20:12:32 
2 | 2011-11-05 20:12:32 
3 | 2011-10-25 20:12:32 
4 | 2011-10-15 20:12:32 
5 | 2011-10-05 20:12:32 
6 | 2010-10-25 20:12:32 
7 | 2010-04-25 20:12:32 
8 | 2009-07-25 20:12:32 

내가 쿼리를 만들고 싶어를 그 :

  • 정렬 연도 별 날짜, 다음 월 다음 날
  • 그런 다음이 연도에 매월 몇 번이나 시간을 계산해야합니다.

당신이 무슨 뜻인지하지 않는 경우 : 그것은 (테이블에서 더미 데이터를 사용하여)이 같은 결과 무언가를 제공해야합니다 :


Year | Month | amount (of rows with that month in that year) 

2011 | 11 | 3 
2011 | 10 | 3 
2010 | 4  | 2 
2009 | 7  | 1 

나는 약간의 지식을 가지고 mySQL, 그러나 이것은 나를 위해 많이있다. :) 사전에

주셔서 감사 쿼리에

+0

+1. 나는 지금까지 시도한 것을 보여주는 섹션을 놓치고 만 있습니다 ... –

답변

10
SELECT YEAR(`date`) AS `year`, 
     MONTH(`date`) AS `month`, 
     COUNT(*)  AS amount 
FROM `table` 
GROUP BY YEAR(`date`), 
      MONTH(`date`) 
ORDER BY `date` DESC 
+0

OMG! 이 코드는 작동합니다. 이 코드는 내가 볼 때 매우 간단하다. 나쁘게 나 자신을 만들 수 없었다. 글쎄, 아직도 배울 것이 많다. xD, Jake 정말 고마워. – DijkeMark

0

사용이 다음 샘플 데이터를 원하는 출력을 보여주는

SELECT count(*) from t GROUP BY YEAR(date), MONTH(date) 
1
SELECT YEAR(date) AS Year, MONTH(date) AS Month, COUNT(*) as amount 
FROM table 
GROUP BY LEFT(date, 7) 
ORDER BY date DESC 
관련 문제