2012-10-09 74 views
0

我已經有每個用戶和每天不同的值,但創建一個MySQL表是UNIX時間戳的INT:選擇每天最多一個值(存儲在UNIX時間戳),

id INT, AUTO_INCREMENT 
users_id INT 
value INT 
created INT 

我需要在過去的30天內每天和每個用戶選擇最多一個值。如果這是一個MySQL的TIMESTAMP,我會這樣做:SELECT * FROM table GROUP BY DAY(created),但我不能用UNIX時間戳做到這一點。

關於如何用當前數據重現相似查詢的任何想法?

回答

2

類似的東西(廣燒燬,但):不組按天而已,最後30天,你可能有同一天的兩倍(二月...)

select 
    users_id, 
    MAX(value) --or just value if you don't mind which should be returned 
FROM table 
WHERE FROM_UNIXTIME(created) BETWEEN (CURDATE() - INTERVAL 30 DAY) AND CURDATE() 
GROUP BY users_id, MONTH(FROM_UNIXTIME(created)), DAY(FROM_UNIXTIME(created)) 
3

使用此

SELECT * FROM表GROUP BY DAY(FROM_UNIXTIME(創建))

+0

我猜'GROUP BY MOD(創建,86400)'也可以使用 – Satevis

相關問題