【MYSQL】7日間の毎日の数を集計(年、季、月、週、日、時)

10045 ワード

この記事mysql統計で使用される関数の説明
DATE_FORMAT(    ,  ) 
FROM_UNIXTIME(   ,  )

書式設定
説明
%a
曜日の略語
%b
月名の略語
%c
月、数値
%D
英語の接頭辞付き月の日
%d
月の日、数値(00-31)
%e
月の日、数値(0-31)
%f
マイクロ秒
%H
時間(00-23)
%h
時間(01-12)
%I
時間(01-12)
%i
分、数値(00-59)
%j
年の日(001-366)
%k
時間(0~23)
%l
時間(1~12)
%M
月名
%m
月、数値(00-12)
%p
AMまたはPM
%r
時間、12時間(hh:mm:ss AMまたはPM)
%S
秒(00-59)
%s
秒(00-59)
%T
時間、24時間(hh:mm:ss)
%U
週(00-53)日曜日は週の初日です
%u
週(00-53)月曜日は週の初日です
%V
週(01-53)日曜日は週の初日で、%Xと使用します.
%v
週(01-53)月曜日は週の初日で、%xと使用されます.
%W
曜日名
%w
曜日(0=日曜日、6=土曜日)
%X
年、その中の日曜日は週の第1日で、4位、%Vと使用します
%x
年、その月曜日は週の初日で、4位で、%vと使用されています.
%Y
年、4位
%y
年、2位
//統計7日間の毎日数
タイムフィールドのタイムスタンプ形式:
#    7         
SELECT
	FROM_UNIXTIME( subscribe_date, '%Y-%m-%d' ) AS date,
	COUNT( * ) AS count 
FROM
	sys_weixin_fans 
WHERE
	is_subscribe = 1 
	AND subscribe_date > 1535558400 
	AND subscribe_date < 1536163200 
GROUP BY
	date
ORDER BY
	date ASC

時刻フィールド日付時刻フォーマット:
#    7                
SELECT
	DATE_FORMAT( time, '%Y-%m-%d' ) AS date,
	COUNT( * ) AS count,
	sum( add_points ) AS add_points,
	sum( amount ) AS amount 
FROM
	`sys_order` 
WHERE
	( `time` > '2018-08-30' AND `time` < '2018-09-06' ) 
GROUP BY
	date
ORDER BY
	date ASC

その他の使用例
時間:
SELECT
	from_unixtime( create_time, "%Y%m%d%H" ) AS hours,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	hours;

日付:
SELECT
	from_unixtime( create_time, "%Y-%m-%d" ) AS days,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	days;

週単位:
SELECT
	from_unixtime( create_time, "%Y-%u" ) AS weeks,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	weeks;

月別:
SELECT
	from_unixtime( create_time, "%Y-%m" ) AS months,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	months;

四半期ごと:
SELECT
	concat( from_unixtime( create_time, "%Y" ), floor( ( from_unixtime( create_time, "%m" ) + 2 ) / 3 ) ) AS quarters,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	quarters;

年単位:
SELECT
	from_unixtime( create_time, "%Y" ) AS years,
	count( id ) AS counts 
FROM
	`table`
GROUP BY
	years;