2013-02-06 89 views
0

我希望獲得過去7天內註冊用戶的數量,並對其進行分組。在過去7天中選擇一天中的條目

+-----+------------+--------------+ 
| id | username | created  | 
+-----+------------+--------------+ 
| 1 | Vlad  | 1360168194 | 
+-----+------------+--------------+ 
| 2 | Test  | 1360168194 | 
+-----+------------+--------------+ 

這是我的表格。我想要有7行結果與一天的日期,並計數(id)作爲結果爲用戶註冊。

我試過不同的解決方案,沒有一個真的符合我的需求。有什麼想法嗎?

+2

向我們展示你試過什麼 –

+1

呀,使用'datetime'或'日期'作爲這些列的數據類型。 – feeela

+0

使用Unix時間戳使它成爲使用內置日期函數的PITA – Kermit

回答

2
SELECT DATE(FROM_UNIXTIME(columName)), COUNT(ID) totalCOunt 
FROM tableName 
WHERE DATE(FROM_UNIXTIME(columName)) BETWEEN CURDATE() + INTERVAL -7 DAY AND CURDATE() 
GROUP BY DATE(FROM_UNIXTIME(columName)) 

其他來源(S)

+0

...'BETWEEN'在這裏可能是安全的(因爲你只用日期工作),但它仍然讓我感覺不舒服。更好地使用顯式範圍:lower-bound inclusive('> ='),upper-bound exclusive('<'),如果存儲的值是時間戳,那麼將是SARGable。 –

+0

也許我錯了,但我認爲你不能在這樣的日期「添加」值;認爲它應該是'date_add(curdate(),間隔-7天)' – Barranka

+0

@Barranka它是一樣的.. –