有一個登錄的log表,所有用戶每登錄一次就會留下一條記錄,登錄時間的字段是login_time,類型為時間戳。現在想要統計每一天用戶的登錄次數。
~~~
SELECT COUNT(*) FROM login_log GROUP BY FROM_UNIXTIME(login_time, '%y-%m-%d');
~~~
如果換一種數據結構,每天,每個用戶的第一次登錄會增加一條新記錄,留下當日登錄次數,然后再登錄一次,這個登錄次數+1,登錄次數的字段是login_count,第一次登錄時間的字段是login_time,類型為時間戳。依舊統計所有用戶每一天的登錄次數。
~~~
SELECT SUM(login_count) FROM login_log GROUP BY FROM_UNIXTIME(login_time, '%y-%m-%d');
~~~
其實后一種,可以延伸到:統計業務員近幾個月的銷售額之類的需求。
- 目錄
- 數據庫表
- 13.7.5.6 SHOW COLUMNS Syntax
- Mysql生成列
- 表注釋
- 默認字符集
- 索引
- 外鍵約束
- 數據類型
- NULL
- 查詢語句
- IF
- CASE
- FIND_IN_SET
- 更新語句
- 復制更新
- 截取更新
- 插入語句
- 從一張表查詢一個字段值插入另一個表中
- 統計函數
- COUNT
- 分組統計
- 日期時間字段按照日期分組
- GROUP_CONCAT
- 多字段關聯
- LENGTH
- mb_strlen()
- SUM
- 按周,按月,按日分組統計數據
- 日期時間
- MySQL日期時間數據類型使用總結
- 計算日期差
- 插入當前日期時間
- 時間比較
- datetime
- 日期時間取時間段
- 統計
- 整型unix時間戳
- 計算兩條相鄰記錄的時間差
- 日期時間-函數
- 常用函數
- CURDATE
- DATEDIFF
- DATE_ADD
- DATE_SUB
- EXTRACT
- NOW
- TO_DAYS
- UNIX_TIMESTAMP
- 作為時間比較
- FROM_UNIXTIME
- DATE_FORMAT
- TIMESTAMPDIFF
- 觸發器
- 存儲過程
- MySQL存儲過程的基本函數
- 分頁存儲過程
- 存儲過程教程
- 臨時表
- 備份表
- CRM
- 客戶關系表
- 通訊錄
- SQL函數
- ISNULL
- IFNULL
- SUBSTR
- 模糊查詢
- JSON
- Json函數
- Json數據類型
- 使用Json
- 使用navicat
- 虛擬列
- CRUD
- 索引設計
- 增加多字段索引
- 共享排他鎖