MySql 使用GROUP BY 按照日期分組統計

2021-07-09 23:46:59 字數 1865 閱讀 5435

select 

date_format(

時間欄位名,'%y-%m-%d'),count(*)  

from table where 條件 group by

date_for

mat(

時間欄位名,'%y-%m-%d'

)

group by 語句可以根據乙個或多個列對結果集進行分組。結合count()可以進行資料統計。 

注:  在mysql中因為不支援從convert()函式,所以需要改用

date_format(

date

,format)替代

在使用date_format(

date

,format

)時,如果時間格式為2015-11-17 17:11:282(及最後的秒為三位數)得到的結果會為null 會導致統計結果出錯

date_format()使用方式如下:

根據format字串格式化date值。下列修飾符可以被用在format字串中: %m 月名字(january……december)

%w 星期名字(sunday……saturday)

%d 有英語字首的月份的日期(1st, 2nd, 3rd, 等等。)

%y 年, 數字, 4 位

%y 年, 數字, 2 位

%a 縮寫的星期名字(sun……sat)

%d 月份中的天數, 數字(00……31)

%e 月份中的天數, 數字(0……31)

%m 月, 數字(01……12)

%c 月, 數字(1……12)

%b 縮寫的月份名字(jan……dec)

%j 一年中的天數(001……366)

%h 小時(00……23)

%k 小時(0……23)

%h 小時(01……12)

%i 小時(01……12)

%l 小時(1……12)

%i 分鐘, 數字(00……59)

%r 時間,12 小時(hh:mm:ss [ap]m)

%t 時間,24 小時(hh:mm:ss)

%s 秒(00……59)

%s 秒(00……59)

%p am或pm

%w 乙個星期中的天數(0=sunday ……6=saturday )

%u 星期(0……52), 這裡星期天是星期的第一天

%u 星期(0……52), 這裡星期一是星期的第一天

%% 乙個文字「%」。

所有的其他字元不做解釋被複製到結果中。

mysql> select date_format('1997-10-04 22:23:00', '%w %m %y');

-> 'saturday october 1997'

mysql> select date_format('1997-10-04 22:23:00', '%h:%i:%s');

-> '22:23:00'

mysql> select date_format('1997-10-04 22:23:00',

'%d %y %a %d %m %b %j');

-> '4th 97 sat 04 10 oct 277'

mysql> select date_format('1997-10-04 22:23:00',

'%h %k %i %r %t %s %w');

-> '22 22 10 10:23:00 pm 22:23:00 00 6'

mysql3.23中,在格式修飾符字元前需要%。在mysql更早的版本中,%是可選的。

SQL按區間進行group by

sql在通常情況下只能按字段值進行分類彙總。現在有現在這張表 create table data id int unsigned not null,version varchar 12 starttime int unsigned,opt id int not null,opt value int ...

Mysql中使用group by出錯

在使用mysql時執行group by時出現下圖的錯 修改 mysql 的my.ini 檔案windows下 linux修改mysqld.cnf檔案 在 mysqld 下新增引數 sql mode strict trans tables,no zero in date,no zero date,er...

MySQL如何使用分組group by

背景 一些場景下是需要用到分組資料的,比如剛工作那會兒,有一次的需求是統計某個網點的各個職員關於一項任務的推廣情況。又比如我要統計每個部門的人數有多少。這些都需要用到分組資料,分組資料就要使用group by 那group by 用法簡單來說可以分為兩種,一種是直接分組不新增限制條件,第二種就是加上...