按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')