Postgresql 按30分鐘、小時、天分組

按30分鐘統計:

shool_time格式爲varchar, 例如
201911050808、201911050820、201911050842
分組後結果:
20191105 0800
20191105 0830
20191105 0900
20191105 0930
注:小於30分鐘的按00統計,大於30分鐘的按30統計

SELECT name,sex,(SELECT (SELECT to_char( to_timestamp( school_time, 'yyyyMMddhh24mi' ), 'yyyyMMdd hh24' ) ) || ':' || to_char(to_timestamp(( SELECT FLOOR ( (SELECT to_char( to_timestamp( school_time, 'yyyyMMddhh24mi' ), 'mi' ) ) :: INTEGER / 30 ) * 30 ),'mi' ),'mi' ) ) school_time 
FROM
	student 
GROUP BY
	name,
	sex,
	school_time

按小時統計:

SELECT
	name,
	sex,
	( SELECT to_char( to_timestamp( school_time, 'yyyyMMdd hh24:mi' ), 'yyyyMMdd hh24' ) ) school_time 
FROM
	student 
GROUP BY
	name,
	sex,
	school_time

按天統計:

SELECT
	name,
	sex,
	( SELECT to_char( to_timestamp( school_time, 'yyyyMMdd hh24:mi' ), 'yyyyMMdd' ) ) school_time 
FROM
	student 
GROUP BY
	name,
	sex,
	school_time

按周統計:
注意:

DOW 週日(0) -> 週一 (6)
isodow 週一(1) -> 週日 (7)

GROUP BY  extract(isodow from timestamp '2019-11-03 20:38:40')
GROUP BY extract(DOW from timestamp '2019-11-03 20:38:40')

postgresql-參考文章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章