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;
相關文章
相關標籤/搜索