簡體   English   中英

SQL - 獲取每小時的計數

[英]SQL - Get a count for each hour

我在 mySQL 中有一個看起來像這樣的表 -

user_id |      login_date       | ip_address
   45      2016-03-28 21:18:01    111.111.111.111
   43      2016-03-28 22:18:01    122.122.122.122

每次用戶登錄時,它都會在此表中創建一個新條目,我希望能夠做的是按小時計算登錄量,因此當我運行查詢時,它看起來像這樣。

   date       |      hour       | count
2016-03-28          19-20           0
2016-03-28          21-22           2

例如,2016 年 3 月 31 日從 09 到 10 小時有 5 人登錄,而在 2016 年 3 月 31 日從 10 到 11 小時有 0 人登錄。

使用這個答案 -

SELECT
    DATE(login_date),
    HOUR(login_date),
    COUNT(*)
FROM logins
WHERE DATE(login_date) IS NOT NULL
GROUP BY CONCAT(DATE(login_date),HOUR(login_date))
ORDER BY HOUR(login_date) ASC

給我 -

在此處輸入圖片說明

為什么我得到NULL?

然后我將使用這些數據創建一個組合圖表來比較今天的登錄和昨天的登錄

在此先感謝您的幫助

我想你試試這個:

SELECT
    DATE(login_date),
    HOUR(login_date),
    COUNT(*)
FROM your_table
WHERE DATE(login_date) IS NOT NULL
GROUP BY CONCAT(DATE(login_date),HOUR(login_date))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM