2011-11-30 115 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謝謝,傑克 – 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