2011-03-14 114 views
-1

我有一個表記錄用戶登錄的時間。我需要生成一個報告來顯示用戶每個月登錄的次數。我該怎麼做呢 ?查找MYSQL中的重複項

- 編輯 - 我可以打印每個用戶在一個月內出現X次,這對我來說確實很好。但是我想顯示一個月的列表,顯示一個月內登錄5次的人數。

+0

你如何記錄時間,希望DateTime類型? – HadleyHope 2011-03-14 09:57:52

+0

是日期時間類型! – Deepak 2011-03-14 10:03:23

回答

1

從評論說:「我想顯示有多少用戶在超過5次登錄」

SELECT YearMonth, COUNT(User) 
FROM (
    SELECT 
    User 
    , DATE_FORMAT(LoggedInTime, '%Y-%m') As YearMonth 
    FROM user_logins 
    GROUP BY User, YearMonth 
    HAVING COUNT(*) > 5 
)GROUP BY YearMonth 
1

可以在這裏找到適合你的主要選擇(IMO)是計算用戶出現的次一組,每月像這樣:

SELECT user_id, 
     count(datetime) as logins, 
     MONTH(datetime) as month 
FROM table 
GROUP BY 1, 3 

的日期和時間函數在mysql中檢查手冊here

2
SELECT 
    User 
, DATE_FORMAT(LoggedInTime, '%Y-%m') As YearMonth 
, COUNT(*) AS NumLogins 
FROM user_logins 
GROUP BY User, YearMonth 
+0

chcek my edit plz .. – Deepak 2011-03-14 10:02:37

+0

按2列分組會顯示特定用戶在一個月內登錄的次數。 BUt我想顯示有多少用戶在特定時間內登錄超過5次..明白了嗎? – Deepak 2011-03-14 10:05:22