mysql一些实用的统计(当日,当月,不重复行等)

最近做到项目的首页展示数据的部分,需要用到各式各样的统计数据,在这里总结一下

//当天数据
SELECT *
FROM 表名
WHERE TO_DAYS(now()) = TO_DAYS(时间字段名)

//当月数据
SELECT *
FROM 表名
WHERE PERIOD_DIFF( date_format(now() , '%Y%m') , date_format(时间字段名, '%Y%m')) =0
//这里解释一下,PERIOD_DIFF是返回两个时间段之间的月数,所以这里是相差月数等于0,这个也可以用来做前某个月的统计,此外,也可以用DATE_SUB函数,如:
SELECT * FROM 表名 WHERE DATE_SUB(now(),INTERVAL 7 DAY) <= 时间字段名
表示近七天的数据
//不重复行统计
SELECT count(DISTINCT id) 
FROM 表名

//按天统计
SELECT
    count(id) countNum,
    DATE(create_time) createTime
FROM
    表名
GROUP BY
    DATE(create_time)
ORDER BY
    DATE(create_time) DESC;


//按周统计
SELECT
    count(id) countNum,
    WEEK(create_time) createTime
FROM
    表名
GROUP BY
    WEEK(create_time)
ORDER BY
    WEEK(create_time) DESC;


//按月统计
SELECT
    count(id) countNum,
    MONTH(create_time) createTime
FROM
    表名
GROUP BY
    MONTH(create_time)
ORDER BY
    MONTH(create_time) DESC;


//按季度统计
SELECT
    count(id) countNum,
    QUARTER(create_time) createTime
FROM
    表名
GROUP BY
    QUARTER(create_time)
ORDER BY
    QUARTER(create_time) DESC;

//按年统计
SELECT
    count(id) countNum,
    YEAR(create_time) createTime
FROM
    表名
GROUP BY
    YEAR(create_time)
ORDER BY
    YEAR(create_time) DESC;

 

转载于:https://www.cnblogs.com/suru723/p/11340221.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值