2012-03-14 131 views
12

我試圖讓我的代碼按以下格式輸出:組由Unix時間戳字段的一個月

january 2012 - 34 
february 2012 - 23 

,其中34和23是屬於這一一個月內,總排的計數有id_dealership 7。我需要這個輸出所有數據的每個月的任務是有史以來。

assignments表結構如下:

id_dealer (int) 
date_assigned (int) 

我已經試過這一點,但它並沒有在所有的工作:

SELECT MONTH(date_assigned), YEAR(date_assigned), COUNT(*) 
FROM assignments 
GROUP BY MONTH(date_assigned), YEAR(date_assigned) 

回答

41
SELECT 
    MONTH(FROM_UNIXTIME(date_assigned)), 
    YEAR(FROM_UNIXTIME(date_assigned)), 
    COUNT(*) 
FROM assignments 
GROUP BY 
    MONTH(FROM_UNIXTIME(date_assigned)), 
    YEAR(FROM_UNIXTIME(date_assigned)) 
+0

你踢屁股。 :) – scarhand 2012-03-14 10:06:58

+0

你能看看這個 - http://stackoverflow.com/questions/9699533/group-by-month-and-year-count-from-another-table – scarhand 2012-03-14 10:07:26

+0

哇,我沒有認爲這是可能的。獎勵! – 2014-05-29 15:06:43

1

你date_assigned列應該是DATE類型。據我所知MONTH工作在日期列 ,如果你想從DATE列使用的月份名稱:MONTHNAME(date_assigned)

+0

這是沒有問題的,但有用的完美解決方案。 – 2013-10-09 15:47:40

0

嘗試此查詢

SELECT 
    MONTH(FROM_UNIXTIME(date_assigned)), 
    YEAR(FROM_UNIXTIME(date_assigned)), 
    COUNT(*) 
FROM assignments 
GROUP BY 1,2 
+0

你能否就這個查詢的工作原理做一些解釋 – amarnath 2018-01-05 14:22:08