MySql如何按照日期進(jìn)行分組統(tǒng)計(jì)
最近接到一個(gè)需求,就是按照日期進(jìn)行統(tǒng)計(jì)數(shù)量,數(shù)據(jù)庫表里有id(編號(hào)),date(日期),phone(手機(jī)號(hào))
數(shù)據(jù)庫
CREATE TABLE `tb_count` ( `id` int(20) NOT NULL AUTO_INCREMENT COMMENT '編號(hào)', `tiems` datetime(0) NOT NULL COMMENT '日期', `number` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '手機(jī)號(hào)', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
我的sql是這樣的
這一條sql是查詢所有的,可以按照這個(gè)方法進(jìn)行分頁查詢,查詢所有
SELECT COUNT(*) AS counts,DATE_FORMAT(tiems,"%Y年%m月%d日") AS dates FROM tb_count GROUP BY DATE_FORMAT (tiems,"%Y年%m月%d日") -- DATE_FORMAT();按照格式對(duì)某個(gè)日期操作, -- tb_count 表名 -- period 日期 -- 整段代碼的意思是:從tb_count表中 查詢?nèi)掌冢╬eriod )(將日期按照"%Y年%m月"格式)并作為dates,統(tǒng)計(jì)數(shù)量(count(*)),按照日期分組 GROUP BY DATE_FORMAT(period ,"%Y年%m月")
如果是進(jìn)行分頁查詢 我是做了一個(gè)封裝,將count(數(shù)量)和period(時(shí)間)做了一個(gè)封裝,做了一個(gè)實(shí)體類,技術(shù)有限,只能想到封裝為一個(gè)對(duì)象
封裝對(duì)象
@ApiModel(description = "Statis",value = "Statis")
public class Statis implements Serializable {
//數(shù)量
@ApiModelProperty(value = "",required = false)
private int counts;
//時(shí)間
@ApiModelProperty(value = "",required = false)
private String dates;
public int getCounts() {
return counts;
}
public void setCounts(int counts) {
this.counts = counts;
}
public String getDates() {
return dates;
}
public void setDates(String dates) {
this.dates = dates;
}
}Service層
/**
* 分頁查詢
* @param page 當(dāng)前頁
* @param size 每頁顯示的條數(shù)
* @return
*/
Result findPage(int page,int size);ServiceImpl Service層實(shí)現(xiàn)類
我這邊用分頁插件是PageInfo,需要傳入一個(gè)page和size
/**
* 分頁查詢
* @param page 當(dāng)前頁
* @param size 每頁顯示的條數(shù)
* @return
*/
@Override
public Result findPage(int page, int size) {
try {
//分頁查詢
PageHelper.startPage(page, size);
//查詢所有
List<Statis> statisList = countsMapper.findAll();
PageInfo<Statis> pageInfo = new PageInfo<Statis>(statisList);
return new Result(true,StatusCode.OK,"分頁查詢成功",pageInfo);
}catch (Exception e){
e.printStackTrace();
return new Result(false,StatusCode.ERROR,"分頁查詢失敗");
}
}Controller層
/**
* 分頁查詢
* @param page 當(dāng)前頁
* @param size 每頁顯示的條數(shù)
* @return
* @throws Exception
*/
@GetMapping("/search/{page}/{size}")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "path", name = "page", value = "當(dāng)前頁", required = true, dataType = "Integer"),
@ApiImplicitParam(paramType = "path", name = "size", value = "每頁顯示條數(shù)", required = true, dataType = "Integer")
})
@ApiOperation(value = "日期分頁查詢",notes = "日期分頁方法詳情",tags = {"MemberController"})
public Result findPage(@PathVariable int page,@PathVariable int size) throws Exception {
return countsService.findPage(page, size);
}最后就是測(cè)試了

這個(gè)需求不是很難,就是一個(gè)簡(jiǎn)單的分頁查詢而已,難點(diǎn)在于這個(gè)sql。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- MySQL按天分組統(tǒng)計(jì)一定時(shí)間內(nèi)的數(shù)據(jù)實(shí)例(沒有數(shù)據(jù)補(bǔ)0)
- mysql如何分別按年/月/日/周分組統(tǒng)計(jì)數(shù)據(jù)詳解
- mysql如何分組統(tǒng)計(jì)并求出百分比
- mysql實(shí)現(xiàn)按照某個(gè)時(shí)間段分組統(tǒng)計(jì)
- Mysql出生日期轉(zhuǎn)換為年齡并分組統(tǒng)計(jì)人數(shù)的方法示例
- MYSQL每隔10分鐘進(jìn)行分組統(tǒng)計(jì)的實(shí)現(xiàn)方法
- mysql按天/小時(shí)/半小時(shí)/N分鐘/分鐘進(jìn)行數(shù)據(jù)分組統(tǒng)計(jì)功能
相關(guān)文章
mysql 5.7.17 winx64解壓版安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 5.7.17 winx64解壓版安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
MySQL數(shù)據(jù)庫表分區(qū)注意事項(xiàng)大全【推薦】
這篇文章主要介紹了MySQL數(shù)據(jù)庫表分區(qū)注意事項(xiàng)相關(guān)內(nèi)容,比較全面,這里分享給大家,需要的朋友可以參考。2017-10-10
MySQL環(huán)境搭建與基礎(chǔ)操作詳細(xì)過程
本文詳細(xì)介紹了MySQL的環(huán)境配置和基礎(chǔ)操作,包括服務(wù)管理、登錄退出、SQL語句執(zhí)行等核心知識(shí)點(diǎn),并通過實(shí)操實(shí)驗(yàn)幫助讀者快速上手MySQL,感興趣的朋友跟隨小編一起看看吧2025-12-12
深入mysql "ON DUPLICATE KEY UPDATE" 語法的分析
本篇文章是對(duì)mysql "ON DUPLICATE KEY UPDATE"語法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
MySQL數(shù)據(jù)庫誤刪恢復(fù)的超詳細(xì)教程
MySQL誤刪數(shù)據(jù)庫,造成了數(shù)據(jù)的丟失,這是非常尷尬的,但是有許多方案可以用來嘗試恢復(fù)丟失的數(shù)據(jù)庫,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫誤刪恢復(fù)的超詳細(xì)教程,需要的朋友可以參考下2024-03-03
mysql server 5.7.20 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql server 5.7.20 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09

