mysql
按日
SELECT COUNT(*),DATE(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime)='2016' GROUP BY DAY(CreateTime)
按周
SELECT COUNT(*),WEEK(CreateTime) FROM t_voipchannelrecord WHERE MONTH(CreateTime) = '8' GROUP BY WEEK(CreateTime)
週一到週五每天的統計結果
SELECT COUNT(*),DAYNAME(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY DAYNAME(CreateTime)
統計本週數據
SELECT COUNT(*) FROM t_voipchannelrecord WHERE MONTH(CreateTime) = MONTH(CURDATE()) AND WEEK(CreateTime) = WEEK(CURDATE())
按月統計
SELECT COUNT(*),MONTH(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY MONTH(CreateTime)
按季統計
SELECT COUNT(*),QUARTER(CreateTime) FROM t_voipchannelrecord WHERE YEAR(CreateTime) = '2016' GROUP BY QUARTER(CreateTime)
按年統計
SELECT COUNT(*),YEAR(CreateTime) FROM t_voipchannelrecord GROUP BY YEAR(CreateTime)
postgresql
1、按日統計
to_char( h.row_date, 'yyyy-MM-dd' ) AS row_date2
GROUP BY to_char( h.row_date, 'yyyy-MM-dd' )
2、按月統計
to_char(h.row_date, 'yyyy-MM' ) AS row_date2
GROUP BY to_char(h.row_date, 'yyyy-MM' )
3、按年統計
to_char( h.row_date,'yyyy' ) AS row_date2
GROUP BY to_char( h.row_date,'yyyy' )
4、按小時統計
to_char( h.row_date, 'yyyy-MM-dd HH' ) AS row_date2
GROUP BY to_char( h.row_date, 'yyyy-MM-dd HH' )
5、按分鐘統計
to_char( h.row_date, 'yyyy-MM-dd HH:mm' ) AS row_date2
GROUP BY to_char( h.row_date, 'yyyy-MM-dd HH:mm' )
6、按周統計
按周統計最簡單法
對時間row_date字段做處理,變成對應日期週一時間,然後按這個週一的時間去統計。減1的操作表示爲對應日期的星期一,減1,2,3,4,5,6,7分別是對應日期的週一,週二,週三,週四,週五、週六、週日。
to_char( h.row_date-(extract (dow from h.row_date) - 1 ||'day')::interval,'yyyy-MM-dd') row_date
然後按上面的語句分組統計即可實現按周統計,下面對應分組函數
GROUP BY to_char(h.row_date-(extract (dow from h.row_date) - 1 ||'day')::interval,'yyyy-MM-dd')