2012-04-14 56 views
0

我有一個MYSQL表記錄點擊到一個網站它的形式(如果需要,這可以改變,我在'這是可行的'階段項目)的:計數行匹配unix時間戳(MYSQL)的不同時間間隔

+----+-----------+---------+----------+------------+ 
| id | useragent | url | loadTime | unixtime | 
+----+-----------+---------+----------+------------+ 
| 1 | Chrome |/  |  300 | 1334354015 | 
| 2 | Chrome |/  |  330 | 1334354020 | 
| 3 | Opera  | /about/ |  310 | 1334354100 | 
+----+-----------+---------+----------+------------+ 

我想要做的是計算命中的每一天,以及平均每天和其他的事情以後再說了加載時。

要計算命中次數,我知道如何做到這一點的唯一方法是使用服務器端語言來SELECT *,然後循環,用一天之間的unix時間來計算行數。什麼是適當的SQL方式來做到這一點,或者我應該堅持選擇*,循環?

回答

2

假設您的表名稱是訪問。

select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v group by visitDate; 

應該只是罰款.. 如果你想通過過濾URL頁面的結果;

select date(FROM_UNIXTIME(unixtime)) as visitDate, url, count(v.id) from visits v group by visitDate, url; 

如果你想看到今天的訪問;

select date(FROM_UNIXTIME(unixtime)) as visitDate, count(v.id) from visits v where date(now()) = date(FROM_UNIXTIME(unixtime)) group by visitDate; 

我還沒有測試任何這些,可能需要一點修改。

+0

哇,太棒了。單獨的FROM_UNIXTIME很酷 - 我計劃在unix時間制定今天的日期,然後添加24 * 60 * 60,然後在該範圍內查找所有內容等。非常感謝 - 所有查詢都是第一次工作:) – 2012-04-14 14:47:07